1#if !defined(__OBJECT_H) 
   29    void decRef(
bool dealloc = 
true)
 const {
 
   34            throw std::runtime_error(
"Internal error: reference count < 0!");
 
  193    explicit operator T *() { 
return m_ptr; }
 
Reference counted object base class.
 
std::atomic< int > m_refCount
 
Object()
Default constructor.
 
int getRefCount() const
Return the current reference count.
 
void incRef() const
Increase the object's reference count by one.
 
virtual std::string toString() const =0
 
virtual ~Object()
Virtual protected deconstructor.
 
void decRef(bool dealloc=true) const
Decrease the reference count of the object and possibly deallocate it.
 
Object(const Object &)
Copy constructor.
 
Reference counting helper.
 
~ref()
Destroy this reference.
 
const T * operator->() const
Access the object referenced by this reference.
 
T & operator*()
Return a C++ reference to the referenced object.
 
ref()
Create a nullptr reference.
 
const T & operator*() const
Return a const C++ reference to the referenced object.
 
bool operator==(const T *ptr) const
Compare this reference with a pointer.
 
T * get_ptr()
Return a const pointer to the referenced object.
 
bool operator==(const ref &r) const
Compare this reference with another reference.
 
bool operator!=(const T *ptr) const
Compare this reference with a pointer.
 
ref & operator=(const ref &r)
Overwrite this reference with another reference.
 
ref & operator=(ref &&r) noexcept
Move another reference into the current one.
 
ref(const ref &r)
Copy constructor.
 
const T * get_ptr() const
Return a pointer to the referenced object.
 
ref(T *ptr)
Construct a reference from a pointer.
 
ref(ref &&r) noexcept
Move constructor.
 
bool operator!=(const ref &r) const
Compare this reference with another reference.
 
T * operator->()
Access the object referenced by this reference.
 
ref & operator=(T *ptr)
Overwrite this reference with a pointer to another object.
 
void print_default_created(T *inst, Values &&...values)
 
void track_destroyed(T *inst)
 
void track_values(T *, Values &&...values)
 
void track_move_assigned(T *, Values &&...values)
 
void print_copy_created(T *inst, Values &&...values)
 
void print_copy_assigned(T *inst, Values &&...values)
 
void track_created(T *inst, Values &&...values)
 
void print_created(T *inst, Values &&...values)
 
void track_move_created(T *inst)
 
void print_values(T *inst, Values &&...values)
 
void track_copy_created(T *inst)
 
void track_copy_assigned(T *, Values &&...values)
 
void print_destroyed(T *inst, Values &&...values)
 
void print_move_assigned(T *inst, Values &&...values)
 
void track_default_created(T *inst, Values &&...values)
 
void print_move_created(T *inst, Values &&...values)