|
cesium-native 0.53.0
|
A smart pointer that calls addReference and releaseReference on the controlled object.
More...
#include <CesiumUtility/IntrusivePointer.h>
Public Types | |
| using | element_type = T |
| The type pointed to by this pointer. | |
Public Member Functions | |
| IntrusivePointer (T *p=nullptr) noexcept | |
| Default constructor. | |
| IntrusivePointer (const IntrusivePointer< T > &rhs) noexcept | |
| Copy constructor. | |
| template<class U> | |
| IntrusivePointer (const IntrusivePointer< U > &rhs) noexcept | |
| Implicit conversion to a pointer to a base (or otherwise convertible) type. | |
| IntrusivePointer (IntrusivePointer< T > &&rhs) noexcept | |
| Move constructor. | |
| template<class U> | |
| IntrusivePointer (IntrusivePointer< U > &&rhs) noexcept | |
| Implicit conversion of an r-value to a pointer to a base (or otherwise convertible) type. | |
| ~IntrusivePointer () noexcept | |
| Default destructor. | |
| operator T* () noexcept | |
| Implicitly converts this implicit pointer to a raw pointer. | |
| operator const T * () const noexcept | |
| Implicitly converts this implicit pointer to a raw pointer. | |
| template<typename... ConstructorArgumentTypes> | |
| T & | emplace (ConstructorArgumentTypes &&... constructorArguments) |
Constructs a new instance and assigns it to this IntrusivePointer. If this IntrusivePointer already points to another instance, releaseReference is called on it. | |
| void | reset () |
| Reset this pointer to nullptr. | |
| IntrusivePointer & | operator= (const IntrusivePointer &rhs) noexcept |
| Assignment operator. | |
| template<class U> | |
| IntrusivePointer & | operator= (const IntrusivePointer< U > &rhs) noexcept |
| Assigns an IntrusivePointer of another type to this IntrusivePointer. | |
| IntrusivePointer & | operator= (IntrusivePointer &&rhs) noexcept |
| Move assignment operator. | |
| IntrusivePointer & | operator= (T *p) noexcept |
| Assignment operator. | |
| T & | operator* () const noexcept |
| Dereferencing operator. | |
| T * | operator-> () const noexcept |
| Arrow operator. | |
| operator bool () const noexcept | |
Implicit conversion to bool, being true iff this is not the nullptr. | |
| operator bool () noexcept | |
Implicit conversion to bool, being true iff this is not the nullptr. | |
| T * | get () const noexcept |
| Returns the internal pointer. | |
| bool | operator== (const IntrusivePointer< T > &rhs) const noexcept |
Returns true if two pointers are equal. | |
| template<class U> | |
| bool | operator== (const IntrusivePointer< U > &rhs) const noexcept |
Returns true if two pointers are equal. | |
| bool | operator!= (const IntrusivePointer< T > &rhs) const noexcept |
Returns true if two pointers are not equal. | |
| template<class U> | |
| bool | operator!= (const IntrusivePointer< U > &rhs) const noexcept |
Returns true if two pointers are not equal. | |
| bool | operator== (const T *pRhs) const noexcept |
Returns true if the contents of this pointer is equal to the given pointer. | |
| bool | operator!= (const T *pRhs) const noexcept |
Returns true if the contents of this pointer is not equal to the given pointer. | |
A smart pointer that calls addReference and releaseReference on the controlled object.
Please note that the thread-safety of this type is entirely dependent on the implementation of addReference and releaseReference. If these methods are not thread safe on a particular type - which is common for objects that are not meant to be used from multiple threads simultaneously - then using an IntrusivePointer from multiple threads is also unsafe.
| T | The type of object controlled. |
Definition at line 21 of file IntrusivePointer.h.
| using CesiumUtility::IntrusivePointer< T >::element_type = T |
The type pointed to by this pointer.
Definition at line 26 of file IntrusivePointer.h.
|
inlinenoexcept |
Default constructor.
Definition at line 31 of file IntrusivePointer.h.
|
inlinenoexcept |
Copy constructor.
Definition at line 36 of file IntrusivePointer.h.
|
inlinenoexcept |
Implicit conversion to a pointer to a base (or otherwise convertible) type.
| U | The new type, usually a base class. |
| rhs | The pointer. |
Definition at line 48 of file IntrusivePointer.h.
|
inlinenoexcept |
Move constructor.
Definition at line 55 of file IntrusivePointer.h.
|
inlinenoexcept |
Implicit conversion of an r-value to a pointer to a base (or otherwise convertible) type.
| U | The new type, usually a base class. |
| rhs | The pointer. |
Definition at line 68 of file IntrusivePointer.h.
|
inlinenoexcept |
Default destructor.
Definition at line 76 of file IntrusivePointer.h.
|
inline |
Constructs a new instance and assigns it to this IntrusivePointer. If this IntrusivePointer already points to another instance, releaseReference is called on it.
| constructorArguments | The arguments to the constructor to create the new instance. |
Definition at line 98 of file IntrusivePointer.h.
|
inlinenoexcept |
Returns the internal pointer.
Definition at line 202 of file IntrusivePointer.h.
|
inlineexplicitnoexcept |
Implicit conversion to bool, being true iff this is not the nullptr.
Definition at line 191 of file IntrusivePointer.h.
|
inlineexplicitnoexcept |
Implicit conversion to bool, being true iff this is not the nullptr.
Definition at line 197 of file IntrusivePointer.h.
|
inlinenoexcept |
Implicitly converts this implicit pointer to a raw pointer.
Definition at line 86 of file IntrusivePointer.h.
|
inlinenoexcept |
Implicitly converts this implicit pointer to a raw pointer.
Definition at line 81 of file IntrusivePointer.h.
|
inlinenoexcept |
Returns true if two pointers are not equal.
Definition at line 220 of file IntrusivePointer.h.
|
inlinenoexcept |
Returns true if two pointers are not equal.
Definition at line 228 of file IntrusivePointer.h.
|
inlinenoexcept |
Returns true if the contents of this pointer is not equal to the given pointer.
Definition at line 242 of file IntrusivePointer.h.
|
inlinenoexcept |
Dereferencing operator.
Definition at line 180 of file IntrusivePointer.h.
|
inlinenoexcept |
Arrow operator.
Definition at line 185 of file IntrusivePointer.h.
|
inlinenoexcept |
Assignment operator.
Definition at line 113 of file IntrusivePointer.h.
|
inlinenoexcept |
Assigns an IntrusivePointer of another type to this IntrusivePointer.
Definition at line 133 of file IntrusivePointer.h.
|
inlinenoexcept |
Move assignment operator.
Definition at line 151 of file IntrusivePointer.h.
|
inlinenoexcept |
Assignment operator.
Definition at line 162 of file IntrusivePointer.h.
|
inlinenoexcept |
Returns true if two pointers are equal.
Definition at line 207 of file IntrusivePointer.h.
|
inlinenoexcept |
Returns true if two pointers are equal.
Definition at line 213 of file IntrusivePointer.h.
|
inlinenoexcept |
Returns true if the contents of this pointer is equal to the given pointer.
Definition at line 236 of file IntrusivePointer.h.
|
inline |
Reset this pointer to nullptr.
Definition at line 107 of file IntrusivePointer.h.
Definition at line 258 of file IntrusivePointer.h.