39 #ifndef BLOCXX_REFERENCE_HPP_ 40 #define BLOCXX_REFERENCE_HPP_ 41 #include "blocxx/BLOCXX_config.h" 52 #if !defined(__GNUC__) || __GNUC__ > 2 // because of a gcc 2.95 ICE 84 #if !defined(__GNUC__) || __GNUC__ > 2 // causes gcc 2.95 to ICE 86 template <
class U>
friend class Reference;
130 typedef char type_must_be_complete[
sizeof(T)];
131 if (ReferenceBase::decRef())
161 #ifdef BLOCXX_CHECK_NULL_REFERENCES 162 ReferenceHelpers::checkNull(
this);
163 ReferenceHelpers::checkNull(m_pObj);
172 #ifdef BLOCXX_CHECK_NULL_REFERENCES 173 ReferenceHelpers::checkNull(
this);
174 ReferenceHelpers::checkNull(m_pObj);
189 return (m_pObj == 0);
198 rval.
m_pObj =
dynamic_cast<U*
>(m_pObj);
211 ReferenceBase::useRefCountOf(arg);
215 template <
class T,
class U>
221 template <
class T,
class U>
227 #if __GNUC__ == 2 && __GNUC_MINOR__ <= 96 235 template <
class T,
class U>
244 #endif // BLOCXX_REFERENCE_HPP_
bool operator!=(const Reference< T > &a, const Reference< U > &b)
const UInt32 INFINITE_TIMEOUT BLOCXX_DEPRECATED
Value that means infinite timeout.
void swap(Array< T > &x, Array< T > &y)
#define BLOCXX_SAFE_BOOL_IMPL(classname, type, variable, test)
bool isNull() const BLOCXX_DEPRECATED
Reference< U > cast_to() const
Char16 operator*(const Char16 &arg1, const Char16 &arg2)
void swap(Reference< T > &arg)
void useRefCountOf(const Reference< U > &)
bool operator==(const Reference< T > &a, const Reference< U > &b)
Reference< T > & operator=(const Reference< T > &arg)