cesium-native 0.51.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.