16 template<
typename T >
26 template<
class U >
struct UnConst<const U> {
55 template<
typename T >
79 template<
typename S >
127 inline operator bool()
const;
159 # if defined(DEBUG_MEMORY)
167 # if defined(DEBUG_MEMORY)
168 Log::instance()->
debug(
"ReferenceCountedPointer<T>::ReferenceCountedPointer( const ReferenceCountedPointer & rhs )\n" );
177 # if defined(DEBUG_MEMORY)
178 Log::instance()->
debug(
"ReferenceCountedPointer<T>::ReferenceCountedPointer( const ReferenceCountedPointer<S> & rhs )\n" );
186 # if defined(DEBUG_MEMORY)
187 Log::instance()->
debug(
"ReferenceCountedPointer<T>::ReferenceCountedPointer( T* rhs )\n" );
196 # if defined(DEBUG_MEMORY)
197 Log::instance()->
debug(
"ReferenceCountedPointer<T>::ReferenceCountedPointer( S* rhs )\n" );
205 # if defined(DEBUG_MEMORY)
215 # if defined(DEBUG_MEMORY)
216 Log::instance()->
debug(
"ReferenceCountedPointer<T>::operator=( const ReferenceCountedPointer<T>& rhs )\n" );
221 if ( this->
_p == rhs.
_p )
234 # if defined(DEBUG_MEMORY)
235 Log::instance()->
debug(
"ReferenceCountedPointer<T>::operator=( const ReferenceCountedPointer<S>& rhs )\n" );
240 if ( this->
_p == rhs.
_p )
252 # if defined(DEBUG_MEMORY)
255 if ( this->
_p == rhs )
268 # if defined(DEBUG_MEMORY)
271 if ( this->
_p == rhs )
313 if (
_p->_ref_count <= 0 ) {
324 # if defined(DEBUG_MEMORY)
332 # if defined(DEBUG_MEMORY)
void swap(ReferenceCountedPointer< T > &lhs, ReferenceCountedPointer< T > &rhs)
void swap(ReferenceCountedPointer< T > &rhs)
UnConst< T >::PlainPointerType PlainPointerType
static Log * instance()
Returns the instance pointer, creating the object on the first call.
virtual ~ReferenceCountedObject()=0
UnConst< T >::PointerType PointerType
PointerType operator->() const
ReferenceCountedPointer()
TypeTraits< T >::PlainPointerType PlainPointerType
void takePointer(PlainPointerType ptr)
TypeTraits< T >::PointerType PointerType
TypeTraits< T >::ReferenceType ReferenceType
UnConst< T >::ReferenceType ReferenceType
ReferenceCountedPointer< T > & operator=(const ReferenceCountedPointer &)
ReferenceType operator*() const
virtual ~ReferenceCountedPointer()
void debug(const char *format,...)
'Debug' level.