OpenSceneGraph  3.5.1
Public Types | Public Member Functions | Friends | List of all members
osg::ref_ptr< T > Class Template Reference

Smart pointer for handling referenced counted objects. More...

Public Types

typedef T element_type
 

Public Member Functions

 ref_ptr ()
 
 ref_ptr (T *ptr)
 
 ref_ptr (const ref_ptr &rp)
 
template<class Other >
 ref_ptr (const ref_ptr< Other > &rp)
 
 ref_ptr (observer_ptr< T > &optr)
 
 ~ref_ptr ()
 
ref_ptroperator= (const ref_ptr &rp)
 
template<class Other >
ref_ptroperator= (const ref_ptr< Other > &rp)
 
ref_ptroperator= (T *ptr)
 
bool operator== (const ref_ptr &rp) const
 
bool operator== (const T *ptr) const
 
bool operator!= (const ref_ptr &rp) const
 
bool operator!= (const T *ptr) const
 
bool operator< (const ref_ptr &rp) const
 
 operator unspecified_bool_type () const
 
T & operator* () const
 
T * operator-> () const
 
T * get () const
 
bool operator! () const
 
bool valid () const
 
T * release ()
 release the pointer from ownership by this ref_ptr<>, decrementing the objects refencedCount() via unref_nodelete() to prevent the Object object from being deleted even if the reference count goes to zero. More...
 
void swap (ref_ptr &rp)
 

Friends

template<class Other >
class ref_ptr
 
bool operator== (const T *ptr, const ref_ptr &rp)
 
bool operator!= (const T *ptr, const ref_ptr &rp)
 

Detailed Description

template<class T>
class osg::ref_ptr< T >

Smart pointer for handling referenced counted objects.

Member Typedef Documentation

template<class T>
typedef T osg::ref_ptr< T >::element_type

Constructor & Destructor Documentation

template<class T>
osg::ref_ptr< T >::ref_ptr ( )
inline
template<class T>
osg::ref_ptr< T >::ref_ptr ( T *  ptr)
inline
template<class T>
osg::ref_ptr< T >::ref_ptr ( const ref_ptr< T > &  rp)
inline
template<class T>
template<class Other >
osg::ref_ptr< T >::ref_ptr ( const ref_ptr< Other > &  rp)
inline
template<class T>
osg::ref_ptr< T >::ref_ptr ( observer_ptr< T > &  optr)
inline
template<class T>
osg::ref_ptr< T >::~ref_ptr ( )
inline

Member Function Documentation

template<class T>
T* osg::ref_ptr< T >::get ( ) const
inline
template<class T>
osg::ref_ptr< T >::operator unspecified_bool_type ( ) const
inline
template<class T>
bool osg::ref_ptr< T >::operator! ( ) const
inline
template<class T>
bool osg::ref_ptr< T >::operator!= ( const ref_ptr< T > &  rp) const
inline
template<class T>
bool osg::ref_ptr< T >::operator!= ( const T *  ptr) const
inline
template<class T>
T& osg::ref_ptr< T >::operator* ( ) const
inline
template<class T>
T* osg::ref_ptr< T >::operator-> ( ) const
inline
template<class T>
bool osg::ref_ptr< T >::operator< ( const ref_ptr< T > &  rp) const
inline
template<class T>
ref_ptr& osg::ref_ptr< T >::operator= ( const ref_ptr< T > &  rp)
inline
template<class T>
template<class Other >
ref_ptr& osg::ref_ptr< T >::operator= ( const ref_ptr< Other > &  rp)
inline
template<class T>
ref_ptr& osg::ref_ptr< T >::operator= ( T *  ptr)
inline
template<class T>
bool osg::ref_ptr< T >::operator== ( const ref_ptr< T > &  rp) const
inline
template<class T>
bool osg::ref_ptr< T >::operator== ( const T *  ptr) const
inline
template<class T>
T* osg::ref_ptr< T >::release ( )
inline

release the pointer from ownership by this ref_ptr<>, decrementing the objects refencedCount() via unref_nodelete() to prevent the Object object from being deleted even if the reference count goes to zero.

Use when using a local ref_ptr<> to an Object that you want to return from a function/method via a C pointer, whilst preventing the normal ref_ptr<> destructor from cleaning up the object. When using release() you are implicitly expecting other code to take over management of the object, otherwise a memory leak will result.

template<class T>
void osg::ref_ptr< T >::swap ( ref_ptr< T > &  rp)
inline
template<class T>
bool osg::ref_ptr< T >::valid ( ) const
inline

Friends And Related Function Documentation

template<class T>
bool operator!= ( const T *  ptr,
const ref_ptr< T > &  rp 
)
friend
template<class T>
bool operator== ( const T *  ptr,
const ref_ptr< T > &  rp 
)
friend
template<class T>
template<class Other >
friend class ref_ptr
friend

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

osg logo
Generated at Wed Nov 11 2015 22:14:40 for the OpenSceneGraph by doxygen 1.8.10.