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