|
| 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 |
|
| ref_ptr (decltype(nullptr)) noexcept |
|
void | reset () |
|
ref_ptr & | operator= (T *ptr) |
|
ref_ptr & | operator= (const ref_ptr &rhs) |
|
template<class R> |
ref_ptr & | operator= (const ref_ptr< R > &rhs) |
|
template<class R> |
ref_ptr & | operator= (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 |
|
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