uvco 0.1
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
uvco::LifetimeTracker< T > Class Template Reference

#include <internal_utils.h>

Public Member Functions

 LifetimeTracker (std::string name="")
 
 LifetimeTracker (LifetimeTracker &&) noexcept
 
LifetimeTrackeroperator= (LifetimeTracker &&) noexcept
 
LifetimeTracker< T > & operator= (const LifetimeTracker< T > &other)
 
 LifetimeTracker (const LifetimeTracker< T > &other)
 
 ~LifetimeTracker ()
 

Protected Attributes

std::string id_
 

Detailed Description

template<typename T>
class uvco::LifetimeTracker< T >

A utility that can be inherited from in order to log information about object construction/destruction.

Constructor & Destructor Documentation

◆ LifetimeTracker() [1/3]

template<typename T >
uvco::LifetimeTracker< T >::LifetimeTracker ( std::string  name = "")
inlineexplicit
149 : id_{std::move(name)} {
150 if (TRACK_LIFETIMES) {
151 fmt::print("ctor {}()#{}\n", typeid(T).name(), id_);
152 }
153 }
std::string id_
Definition internal_utils.h:186
const bool TRACK_LIFETIMES
Definition internal_utils.cc:15

◆ LifetimeTracker() [2/3]

template<typename T >
uvco::LifetimeTracker< T >::LifetimeTracker ( LifetimeTracker< T > &&  )
inlinenoexcept
154 {
155 if (TRACK_LIFETIMES) {
156 fmt::print("ctor {}()#{}\n", typeid(T).name(), id_);
157 }
158 }

◆ LifetimeTracker() [3/3]

template<typename T >
uvco::LifetimeTracker< T >::LifetimeTracker ( const LifetimeTracker< T > &  other)
inline
174 : id_{fmt::format("{}/copy", other.id_)} {
175 if (TRACK_LIFETIMES) {
176 fmt::print("operator={}({})#{}\n", typeid(T).name(), other.id_, id_);
177 }
178 }

◆ ~LifetimeTracker()

template<typename T >
uvco::LifetimeTracker< T >::~LifetimeTracker ( )
inline
179 {
180 if (TRACK_LIFETIMES) {
181 fmt::print("dtor ~{}()\n", typeid(T).name());
182 }
183 }

Member Function Documentation

◆ operator=() [1/2]

template<typename T >
LifetimeTracker< T > & uvco::LifetimeTracker< T >::operator= ( const LifetimeTracker< T > &  other)
inline
164 {
165 if (this == &other) {
166 return *this;
167 }
168 if (TRACK_LIFETIMES) {
169 fmt::print("operator={}({})#{}\n", typeid(T).name(), other.id_, id_);
170 }
171 id_ = fmt::format("{}/copy", other.id_);
172 }

◆ operator=() [2/2]

template<typename T >
LifetimeTracker & uvco::LifetimeTracker< T >::operator= ( LifetimeTracker< T > &&  )
inlinenoexcept
159 {
160 if (TRACK_LIFETIMES) {
161 fmt::print("operator={}()#{}\n", typeid(T).name(), id_);
162 }
163 }

Member Data Documentation

◆ id_

template<typename T >
std::string uvco::LifetimeTracker< T >::id_
protected

The documentation for this class was generated from the following file: