38 #ifndef BLOCXX_COWREFERENCE_HPP_INCLUDE_GUARD_ 39 #define BLOCXX_COWREFERENCE_HPP_INCLUDE_GUARD_ 40 #include "blocxx/BLOCXX_config.h" 148 COWReference<U>
cast_to() const;
153 #if !defined(__GNUC__) || __GNUC__ > 2 // causes gcc 2.95 to ICE 155 template <
class U>
friend class COWReference;
204 typedef char type_must_be_complete[
sizeof(T)];
257 #ifdef BLOCXX_CHECK_NULL_REFERENCES 258 ReferenceHelpers::checkNull(
this);
259 ReferenceHelpers::checkNull(
m_pObj);
269 #ifdef BLOCXX_CHECK_NULL_REFERENCES 270 ReferenceHelpers::checkNull(
this);
271 ReferenceHelpers::checkNull(
m_pObj);
281 #ifdef BLOCXX_CHECK_NULL_REFERENCES 282 ReferenceHelpers::checkNull(
this);
283 ReferenceHelpers::checkNull(
m_pObj);
292 #ifdef BLOCXX_CHECK_NULL_REFERENCES 293 ReferenceHelpers::checkNull(
this);
294 ReferenceHelpers::checkNull(
m_pObj);
335 template <
class T,
class U>
341 template <
class T,
class U>
347 template <
class T,
class U>
350 return a.
getPtr() < b.getPtr();
364 #endif // BLOCXX_COWREFERENCE_HPP_
void swap(COWReferenceBase &arg)
bool operator!=(const Array< T > &x, const Array< T > &y)
Determine two Arrays are not equal.
void useRefCountOf(const COWReference< U > &)
const UInt32 INFINITE_TIMEOUT BLOCXX_DEPRECATED
Value that means infinite timeout.
void swap(COWReference< T > &arg)
#define BLOCXX_SAFE_BOOL_IMPL(classname, type, variable, test)
~COWReference()
Destroy this COWReference.
COWReference()
Default constructor The underlying object pointer will be NULL.
void useRefCountOf(const COWReferenceBase &arg)
bool operator==(const Array< T > &x, const Array< T > &y)
bool refCountGreaterThanOne() const
bool isNull() const BLOCXX_DEPRECATED
COWReference A smart pointer that uses non-intrusive reference counting.
COWReference< U > cast_to() const
COWReference< T > & operator=(const COWReference< T > &arg)
Assignment operator.
T * COWReferenceClone(T *obj)
void COWRefSwap(T &x, T &y)