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

#include <ref_ptr>

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 ()
 
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

◆ element_type

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

Constructor & Destructor Documentation

◆ ref_ptr() [1/5]

template<class T >
osg::ref_ptr< T >::ref_ptr ( )
inline

◆ ref_ptr() [2/5]

template<class T >
osg::ref_ptr< T >::ref_ptr ( T *  ptr)
inline

◆ ref_ptr() [3/5]

template<class T >
osg::ref_ptr< T >::ref_ptr ( const ref_ptr< T > &  rp)
inline

◆ ref_ptr() [4/5]

template<class T >
template<class Other >
osg::ref_ptr< T >::ref_ptr ( const ref_ptr< Other > &  rp)
inline

◆ ref_ptr() [5/5]

template<class T >
osg::ref_ptr< T >::ref_ptr ( observer_ptr< T > &  optr)
inline

◆ ~ref_ptr()

template<class T >
osg::ref_ptr< T >::~ref_ptr ( )
inline

Member Function Documentation

◆ get()

template<class T >
T * osg::ref_ptr< T >::get ( ) const
inline

◆ operator unspecified_bool_type()

template<class T >
osg::ref_ptr< T >::operator unspecified_bool_type ( ) const
inline

◆ operator!()

template<class T >
bool osg::ref_ptr< T >::operator! ( ) const
inline

◆ operator!=() [1/2]

template<class T >
bool osg::ref_ptr< T >::operator!= ( const ref_ptr< T > &  rp) const
inline

◆ operator!=() [2/2]

template<class T >
bool osg::ref_ptr< T >::operator!= ( const T *  ptr) const
inline

◆ operator*()

template<class T >
T & osg::ref_ptr< T >::operator* ( ) const
inline

◆ operator->()

template<class T >
T * osg::ref_ptr< T >::operator-> ( ) const
inline

◆ operator<()

template<class T >
bool osg::ref_ptr< T >::operator< ( const ref_ptr< T > &  rp) const
inline

◆ operator=() [1/3]

template<class T >
ref_ptr & osg::ref_ptr< T >::operator= ( const ref_ptr< T > &  rp)
inline

◆ operator=() [2/3]

template<class T >
template<class Other >
ref_ptr & osg::ref_ptr< T >::operator= ( const ref_ptr< Other > &  rp)
inline

◆ operator=() [3/3]

template<class T >
ref_ptr & osg::ref_ptr< T >::operator= ( T *  ptr)
inline

◆ operator==() [1/2]

template<class T >
bool osg::ref_ptr< T >::operator== ( const ref_ptr< T > &  rp) const
inline

◆ operator==() [2/2]

template<class T >
bool osg::ref_ptr< T >::operator== ( const T *  ptr) const
inline

◆ release()

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.

◆ swap()

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

◆ valid()

template<class T >
bool osg::ref_ptr< T >::valid ( ) const
inline

Friends And Related Symbol Documentation

◆ operator!=

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

◆ operator==

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

◆ ref_ptr

template<class T >
template<class Other >
friend class ref_ptr
friend

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