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