libvisual
0.5.0
|
Intrusive smart pointer class template. More...
#include <libvisual/lv_intrusive_ptr.hpp>
Public Types | |
typedef T | element_type |
Public Member Functions | |
IntrusivePtr (T *ptr, bool add_ref=true) | |
template<typename U > | |
IntrusivePtr (IntrusivePtr< U > const &rhs) | |
IntrusivePtr (IntrusivePtr const &rhs) | |
Copy constructor. | |
IntrusivePtr (IntrusivePtr &&rhs) | |
Move constructor. | |
~IntrusivePtr () | |
Destructor. | |
template<class U > | |
IntrusivePtr & | operator= (IntrusivePtr< U > const &rhs) |
Assignment operator. | |
IntrusivePtr & | operator= (IntrusivePtr const &rhs) |
Copy assignment operator. | |
IntrusivePtr & | operator= (T *rhs) |
Raw-pointer assignment operator. | |
IntrusivePtr & | operator= (IntrusivePtr &&rhs) |
Move assignment. | |
void | reset () |
Resets pointer to null. | |
void | reset (T *rhs) |
T * | get () const |
Returns the memory managed pointer. | |
T & | operator* () const |
Dereference operator. | |
T * | operator-> () const |
Member dereference operator. | |
operator bool () const | |
Bool conversion operator. | |
void | swap (IntrusivePtr &rhs) |
Swaps pointer with another. | |
Intrusive smart pointer class template.
T | Class to reference count |
The type T must have two functions overloaded:
Definition at line 19 of file lv_intrusive_ptr.hpp.