omgui::Pointer< T > Class Template Reference

#include <omgui/refcount.h>

List of all members.


Detailed Description

template<typename T>
class omgui::Pointer< T >

This class is an alternative to boost::intrusive_ptr using intrusive reference counting.

Makes unqualified calls to:


Public Types

typedef T *Pointer::* unspecified_bool_type

Public Member Functions

T * get () const
 operator unspecified_bool_type () const
T & operator* () const
T * operator-> () const
template<typename U>
Pointeroperator= (const Pointer< U > &p)
Pointeroperator= (const Pointer &p)
template<typename U>
 Pointer (const Pointer< U > &p)
 Pointer (const Pointer &p)
 Pointer (T *p=0, bool add_ref=true)
 ~Pointer ()

Private Member Functions

void swap (Pointer &p)

Private Attributes

T * m_p

Friends

template<typename U>
void swap (Pointer< U > &lhs, Pointer< U > &rhs)

Member Typedef Documentation

template<typename T>
typedef T* Pointer::* omgui::Pointer< T >::unspecified_bool_type


Constructor & Destructor Documentation

template<typename T>
omgui::Pointer< T >::Pointer ( T *  p = 0,
bool  add_ref = true 
) [inline]

Creates a Pointer.

Parameters:
p The pointer
add_ref If true, the reference count for the pointed at object will be increased.

template<typename T>
omgui::Pointer< T >::Pointer ( const Pointer< T > &  p  )  [inline]

template<typename T>
template<typename U>
omgui::Pointer< T >::Pointer ( const Pointer< U > &  p  )  [inline]

template<typename T>
omgui::Pointer< T >::~Pointer (  )  [inline]


Member Function Documentation

template<typename T>
T* omgui::Pointer< T >::get (  )  const [inline]

template<typename T>
omgui::Pointer< T >::operator unspecified_bool_type (  )  const [inline]

template<typename T>
T& omgui::Pointer< T >::operator* (  )  const [inline]

template<typename T>
T* omgui::Pointer< T >::operator-> (  )  const [inline]

template<typename T>
template<typename U>
Pointer& omgui::Pointer< T >::operator= ( const Pointer< U > &  p  )  [inline]

template<typename T>
Pointer& omgui::Pointer< T >::operator= ( const Pointer< T > &  p  )  [inline]

template<typename T>
void omgui::Pointer< T >::swap ( Pointer< T > &  p  )  [inline, private]


Friends And Related Function Documentation

template<typename T>
template<typename U>
void swap ( Pointer< U > &  lhs,
Pointer< U > &  rhs 
) [friend]


Member Data Documentation

template<typename T>
T* omgui::Pointer< T >::m_p [private]


doxygen SourceForge.net Logo