47#ifndef BLOCXX_COW_INTRUSIVE_COUNTABLE_BASE_HPP_INCLUDE_GUARD_
48#define BLOCXX_COW_INTRUSIVE_COUNTABLE_BASE_HPP_INCLUDE_GUARD_
50#include "blocxx/BLOCXX_config.h"
162 template <
typename T>
172 if (p->m_usecount.decAndTest())
RefCount getRefCount() const
COWIntrusiveCountableBase(COWIntrusiveCountableBase const &)
Copy constructor.
friend void COWIntrusiveReferenceRelease(COWIntrusiveCountableBase *p)
Release a reference on a COWIntrusiveCountableBase.
COWIntrusiveCountableBase & operator=(COWIntrusiveCountableBase const &x)
Assignment operator.
COWIntrusiveCountableBase()
Default constructor.
friend void COWIntrusiveReferenceAddRef(COWIntrusiveCountableBase *p)
Increment the reference count for a COWIntrusiveCountableBase object.
friend bool COWIntrusiveReferenceUnique(COWIntrusiveCountableBase *p)
Determine of a COWIntrusiveCountableBase only has one reference.
T * COWIntrusiveReferenceClone(T *p)
void COWIntrusiveReferenceAddRef(COWIntrusiveCountableBase *p)
void COWIntrusiveReferenceRelease(COWIntrusiveCountableBase *p)
bool COWIntrusiveReferenceUnique(COWIntrusiveCountableBase *p)