49#ifndef BLOCXX_INTRUSIVE_REFERENCE_HPP_INCLUDE_GUARD_
50#define BLOCXX_INTRUSIVE_REFERENCE_HPP_INCLUDE_GUARD_
52#include "blocxx/BLOCXX_config.h"
122#ifdef BLOCXX_CHECK_NULL_REFERENCES
123 ReferenceHelpers::checkNull(
this);
124 ReferenceHelpers::checkNull(
m_pObj);
130#ifdef BLOCXX_CHECK_NULL_REFERENCES
131 ReferenceHelpers::checkNull(
this);
132 ReferenceHelpers::checkNull(
m_pObj);
184#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96
186template<
class T>
inline bool operator!=(IntrusiveReference<T>
const & a, IntrusiveReference<T>
const & b)
188 return a.getPtr() != b.getPtr();
201 return static_cast<T *
>(p.
getPtr());
205 return const_cast<T *
>(p.
getPtr());
209 return dynamic_cast<T *
>(p.
getPtr());
#define BLOCXX_SAFE_BOOL_IMPL(classname, type, variable, test)
IntrusiveReference & operator=(IntrusiveReference const &rhs)
IntrusiveReference(IntrusiveReference const &rhs)
void swap(IntrusiveReference &rhs)
IntrusiveReference< U > cast_to() const
IntrusiveReference & operator=(T *rhs)
IntrusiveReference(T *p, bool add_ref=true)
IntrusiveReference(IntrusiveReference< U > const &rhs)
IntrusiveReference & operator=(IntrusiveReference< U > const &rhs)
IntrusiveReference this_type
BLOCXX_DEPRECATED bool isNull() const
void IntrusiveReferenceRelease(IntrusiveCountableBase *p)
IntrusiveReference< T > dynamic_pointer_cast(IntrusiveReference< U > const &p)
void IntrusiveReferenceAddRef(IntrusiveCountableBase *p)
IntrusiveReference< T > static_pointer_cast(IntrusiveReference< U > const &p)
bool operator<(const Array< T > &x, const Array< T > &y)
bool operator==(const Array< T > &x, const Array< T > &y)
bool operator!=(const Array< T > &x, const Array< T > &y)
Determine two Arrays are not equal.
void swap(Array< T > &x, Array< T > &y)
IntrusiveReference< T > const_pointer_cast(IntrusiveReference< U > const &p)