uvco 0.1
Loading...
Searching...
No Matches
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
128 : id_{std::move(name)} {
129 if (TRACK_LIFETIMES) {
130 fmt::print("ctor {}()#{}\n", typeid(T).name(), id_);
131 }
132 }
Definition internal_utils.h:126
std::string id_
Definition internal_utils.h:165

◆ LifetimeTracker() [2/3]

template<typename T>
uvco::LifetimeTracker< T >::LifetimeTracker ( LifetimeTracker< T > && )
inlinenoexcept
133 {
134 if (TRACK_LIFETIMES) {
135 fmt::print("ctor {}()#{}\n", typeid(T).name(), id_);
136 }
137 }

◆ LifetimeTracker() [3/3]

template<typename T>
uvco::LifetimeTracker< T >::LifetimeTracker ( const LifetimeTracker< T > & other)
inline
153 : id_{fmt::format("{}/copy", other.id_)} {
154 if (TRACK_LIFETIMES) {
155 fmt::print("operator={}({})#{}\n", typeid(T).name(), other.id_, id_);
156 }
157 }

◆ ~LifetimeTracker()

template<typename T>
uvco::LifetimeTracker< T >::~LifetimeTracker ( )
inline
158 {
159 if (TRACK_LIFETIMES) {
160 fmt::print("dtor ~{}()\n", typeid(T).name());
161 }
162 }

Member Function Documentation

◆ operator=() [1/2]

template<typename T>
LifetimeTracker< T > & uvco::LifetimeTracker< T >::operator= ( const LifetimeTracker< T > & other)
inline
143 {
144 if (this == &other) {
145 return *this;
146 }
147 if (TRACK_LIFETIMES) {
148 fmt::print("operator={}({})#{}\n", typeid(T).name(), other.id_, id_);
149 }
150 id_ = fmt::format("{}/copy", other.id_);
151 }

◆ operator=() [2/2]

template<typename T>
LifetimeTracker & uvco::LifetimeTracker< T >::operator= ( LifetimeTracker< T > && )
inlinenoexcept
138 {
139 if (TRACK_LIFETIMES) {
140 fmt::print("operator={}()#{}\n", typeid(T).name(), id_);
141 }
142 }

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: