blocxx
BLOCXX_NAMESPACE::Reference< T > Class Template Reference

#include <Reference.hpp>

Inheritance diagram for BLOCXX_NAMESPACE::Reference< T >:
BLOCXX_NAMESPACE::ReferenceBase

Public Types

typedef T element_type
 
typedef T *volatile Reference::* safe_bool
 

Public Member Functions

 Reference ()
 
 Reference (T *ptr)
 
 Reference (const Reference< T > &arg)
 
template<class U >
 Reference (const Reference< U > &arg)
 
 ~Reference ()
 
Reference< T > & operator= (const Reference< T > &arg)
 
Reference< T > & operator= (T *newObj)
 
void swap (Reference< T > &arg)
 
T * operator-> () const
 
T & operator* () const
 
T * getPtr () const
 
bool isNull () const BLOCXX_DEPRECATED
 
 operator safe_bool () const
 
bool operator! () const
 
template<class U >
Reference< U > cast_to () const
 
template<class U >
void useRefCountOf (const Reference< U > &)
 

Private Member Functions

void decRef ()
 
- Private Member Functions inherited from BLOCXX_NAMESPACE::ReferenceBase
 ReferenceBase ()
 
 ReferenceBase (const ReferenceBase &arg)
 
void incRef ()
 
bool decRef ()
 
void swap (ReferenceBase &arg)
 
void useRefCountOf (const ReferenceBase &arg)
 

Private Attributes

T *volatile m_pObj
 
- Private Attributes inherited from BLOCXX_NAMESPACE::ReferenceBase
RefCount *volatile m_pRefCount
 

Friends

template<class U >
class Reference
 

Detailed Description

template<class T>
class BLOCXX_NAMESPACE::Reference< T >

Definition at line 51 of file Reference.hpp.

Member Typedef Documentation

◆ element_type

template<class T >
T BLOCXX_NAMESPACE::Reference< T >::element_type

Definition at line 59 of file Reference.hpp.

◆ safe_bool

template<class T >
T* volatile Reference::* BLOCXX_NAMESPACE::Reference< T >::safe_bool

Definition at line 78 of file Reference.hpp.

Constructor & Destructor Documentation

◆ Reference() [1/4]

template<class T >
BLOCXX_NAMESPACE::Reference< T >::Reference ( )
inline

Definition at line 94 of file Reference.hpp.

◆ Reference() [2/4]

template<class T >
BLOCXX_NAMESPACE::Reference< T >::Reference ( T * ptr)
inlineexplicit

Definition at line 100 of file Reference.hpp.

◆ Reference() [3/4]

template<class T >
BLOCXX_NAMESPACE::Reference< T >::Reference ( const Reference< T > & arg)
inline

Definition at line 106 of file Reference.hpp.

◆ Reference() [4/4]

template<class T >
template<class U >
BLOCXX_NAMESPACE::Reference< T >::Reference ( const Reference< U > & arg)
inline

Definition at line 113 of file Reference.hpp.

◆ ~Reference()

template<class T >
BLOCXX_NAMESPACE::Reference< T >::~Reference ( )
inline

Definition at line 120 of file Reference.hpp.

Member Function Documentation

◆ cast_to()

template<class T >
template<class U >
Reference< U > BLOCXX_NAMESPACE::Reference< T >::cast_to ( ) const
inline

◆ decRef()

template<class T >
void BLOCXX_NAMESPACE::Reference< T >::decRef ( )
inlineprivate

Definition at line 128 of file Reference.hpp.

References BLOCXX_NAMESPACE::ReferenceBase::decRef().

◆ getPtr()

template<class T >
T * BLOCXX_NAMESPACE::Reference< T >::getPtr ( ) const
inline

◆ isNull()

template<class T >
bool BLOCXX_NAMESPACE::Reference< T >::isNull ( ) const
inline

Definition at line 187 of file Reference.hpp.

◆ operator safe_bool()

template<class T >
BLOCXX_NAMESPACE::Reference< T >::operator safe_bool ( ) const
inline

Definition at line 78 of file Reference.hpp.

◆ operator!()

template<class T >
bool BLOCXX_NAMESPACE::Reference< T >::operator! ( ) const
inline

Definition at line 78 of file Reference.hpp.

◆ operator*()

template<class T >
T & BLOCXX_NAMESPACE::Reference< T >::operator* ( ) const
inline

Definition at line 170 of file Reference.hpp.

◆ operator->()

template<class T >
T * BLOCXX_NAMESPACE::Reference< T >::operator-> ( ) const
inline

Definition at line 159 of file Reference.hpp.

◆ operator=() [1/2]

template<class T >
Reference< T > & BLOCXX_NAMESPACE::Reference< T >::operator= ( const Reference< T > & arg)
inline

Definition at line 138 of file Reference.hpp.

References BLOCXX_NAMESPACE::Reference< T >::swap().

◆ operator=() [2/2]

template<class T >
Reference< T > & BLOCXX_NAMESPACE::Reference< T >::operator= ( T * newObj)
inline

Definition at line 145 of file Reference.hpp.

References BLOCXX_NAMESPACE::Reference< T >::swap().

◆ swap()

◆ useRefCountOf()

template<class T >
template<class U >
void BLOCXX_NAMESPACE::Reference< T >::useRefCountOf ( const Reference< U > & arg)
inline

Friends And Related Symbol Documentation

◆ Reference

template<class T >
template<class U >
friend class Reference
friend

Definition at line 86 of file Reference.hpp.

Member Data Documentation

◆ m_pObj

template<class T >
T* volatile BLOCXX_NAMESPACE::Reference< T >::m_pObj
private

The documentation for this class was generated from the following file: