OpenSceneGraph
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 (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_ptroperator= (const ref_ptr &rp)
 
template<class Other >
ref_ptroperator= (const ref_ptr< Other > &rp)
 
ref_ptroperator= (T *ptr)
 
 operator T* () const
 
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
 
Toperator* () const
 
Toperator-> () const
 
Tget () const
 
bool operator! () const
 
bool valid () const
 
Trelease ()
 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 Function Documentation

◆ 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.


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