Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Public Member Functions | List of all members
trace::TracingBaseClass< Derived > Struct Template Reference

CRTP tracing base class that emits messages with demangled type name. More...

#include <trace.hpp>

Public Member Functions

std::string DerivedName () const
 Get demangled class name of the CRTP derived class.
 
TracingBaseClass & operator= (const TracingBaseClass &other)
 Copy assignment. Emits a trace message.
 
TracingBaseClass & operator= (TracingBaseClass &&other) noexcept
 Move assignment. Emits a trace message.
 
template<typename T >
detail::TraceNameValue OtherPointer (T *x) const
 
Derived const * This () const noexcept
 Get this pointer as Derived* (for CRTP usage).
 
Derived * This () noexcept
 
detail::TraceNameValue ThisPointer () const
 
 TracingBaseClass ()
 Default constructor. Emits a trace message.
 
template<typename... Args>
 TracingBaseClass (Args &&... args)
 
 TracingBaseClass (const TracingBaseClass &other)
 Copy constructor. Emits a trace message.
 
 TracingBaseClass (Derived &&other) noexcept
 Move constructor. Emits a trace message.
 
 TracingBaseClass (TracingBaseClass &&other) noexcept
 Move constructor. Emits a trace message.
 
 ~TracingBaseClass ()
 Destructor. Emits a trace message.
 

Detailed Description

template<typename Derived>
struct trace::TracingBaseClass< Derived >

CRTP tracing base class that emits messages with demangled type name.

Template Parameters
TagCompile-time string, e.g., CTStr{"AsyncTask"}.

Inherit from this class to automatically trace construction, destruction, and assignment of derived objects. All trace messages are tagged with the class name.

Constructor & Destructor Documentation

◆ TracingBaseClass() [1/5]

template<typename Derived >
trace::TracingBaseClass< Derived >::TracingBaseClass ( )
inline

Default constructor. Emits a trace message.

◆ TracingBaseClass() [2/5]

template<typename Derived >
template<typename... Args>
trace::TracingBaseClass< Derived >::TracingBaseClass ( Args &&...  args)
inline

◆ TracingBaseClass() [3/5]

template<typename Derived >
trace::TracingBaseClass< Derived >::TracingBaseClass ( const TracingBaseClass< Derived > &  other)
inline

Copy constructor. Emits a trace message.

◆ TracingBaseClass() [4/5]

template<typename Derived >
trace::TracingBaseClass< Derived >::TracingBaseClass ( TracingBaseClass< Derived > &&  other)
inlinenoexcept

Move constructor. Emits a trace message.

◆ TracingBaseClass() [5/5]

template<typename Derived >
trace::TracingBaseClass< Derived >::TracingBaseClass ( Derived &&  other)
inlinenoexcept

Move constructor. Emits a trace message.

◆ ~TracingBaseClass()

template<typename Derived >
trace::TracingBaseClass< Derived >::~TracingBaseClass ( )
inline

Destructor. Emits a trace message.

Member Function Documentation

◆ DerivedName()

template<typename Derived >
std::string trace::TracingBaseClass< Derived >::DerivedName ( ) const
inline

Get demangled class name of the CRTP derived class.

◆ operator=() [1/2]

template<typename Derived >
TracingBaseClass & trace::TracingBaseClass< Derived >::operator= ( const TracingBaseClass< Derived > &  other)
inline

Copy assignment. Emits a trace message.

◆ operator=() [2/2]

template<typename Derived >
TracingBaseClass & trace::TracingBaseClass< Derived >::operator= ( TracingBaseClass< Derived > &&  other)
inlinenoexcept

Move assignment. Emits a trace message.

◆ OtherPointer()

template<typename Derived >
template<typename T >
detail::TraceNameValue trace::TracingBaseClass< Derived >::OtherPointer ( T *  x) const
inline

◆ This() [1/2]

template<typename Derived >
Derived const * trace::TracingBaseClass< Derived >::This ( ) const
inlinenoexcept

Get this pointer as Derived* (for CRTP usage).

◆ This() [2/2]

template<typename Derived >
Derived * trace::TracingBaseClass< Derived >::This ( )
inlinenoexcept

◆ ThisPointer()

template<typename Derived >
detail::TraceNameValue trace::TracingBaseClass< Derived >::ThisPointer ( ) const
inline

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