vsg  1.1.0
VulkanSceneGraph library
Public Types | Public Member Functions | Protected Attributes | List of all members
vsg::ref_ptr< T > Class Template Reference

#include <ref_ptr.h>

Public Types

using element_type = T
 

Public Member Functions

 ref_ptr (const ref_ptr &rhs) noexcept
 
template<class R >
 ref_ptr (ref_ptr< R > &&rhs) noexcept
 move constructor
 
template<class R >
 ref_ptr (const ref_ptr< R > &ptr) noexcept
 
 ref_ptr (T *ptr) noexcept
 
template<class R >
 ref_ptr (R *ptr) noexcept
 
void reset ()
 
ref_ptroperator= (T *ptr)
 
ref_ptroperator= (const ref_ptr &rhs)
 
template<class R >
ref_ptroperator= (const ref_ptr< R > &rhs)
 
template<class R >
ref_ptroperator= (ref_ptr< R > &&rhs)
 move assignment
 
template<class R >
bool operator< (const ref_ptr< R > &rhs) const
 
template<class R >
bool operator== (const ref_ptr< R > &rhs) const
 
template<class R >
bool operator!= (const ref_ptr< R > &rhs) const
 
template<class R >
bool operator< (const R *rhs) const
 
template<class R >
bool operator== (const R *rhs) const
 
template<class R >
bool operator!= (const R *rhs) const
 
bool valid () const noexcept
 
 operator bool () const noexcept
 
 operator T* () const noexcept
 
void operator[] (int) const =delete
 
T & operator* () const noexcept
 
T * operator-> () const noexcept
 
T * get () const noexcept
 
T * release_nodelete () noexcept
 
void swap (ref_ptr &rhs) noexcept
 
template<class R >
ref_ptr< R > cast () const
 

Protected Attributes

T * _ptr
 

Detailed Description

template<class T>
class vsg::ref_ptr< T >

smart pointer that works with objects that have intrusive reference counting, such as all vsg::Object broadly similar in role to std::shared_ptr<> but half size and faster thanks to lower memory footprint and better cache coherency


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