Weak pointer template class with intrusive reference counting. Does not keep the object pointed to alive.
More...
|
|
| WeakPtr (std::nullptr_t) noexcept |
| |
|
| WeakPtr (const ThisType &rhs) noexcept |
| | Copy-construct from another weak pointer.
|
| |
|
| WeakPtr (ThisType &&rhs) noexcept |
| | Move-construct from another weak pointer.
|
| |
|
template<class U1 , class U2 > |
| | WeakPtr (const WeakPtr< U1, U2 > &rhs) noexcept |
| | Copy-construct from another weak pointer allowing implicit upcasting.
|
| |
|
template<class U1 , class U2 > |
| | WeakPtr (const SharedPtr< U1, U2 > &rhs) noexcept |
| | Construct from a shared pointer.
|
| |
|
template<class U , ea::enable_if_t< ea::is_base_of_v< InterfaceType, U >, int > = 0> |
| | WeakPtr (U *ptr) noexcept |
| | Construct from a raw pointer.
|
| |
|
| WeakPtr (InterfaceType *ptr, RefCounted *refCounted) noexcept |
| | Construct from separate pointers.
|
| |
|
| ~WeakPtr () noexcept |
| | Destruct. Release the weak reference to the object.
|
| |
|
template<class U1 , class U2 > |
| ThisType & | operator= (const SharedPtr< U1, U2 > &rhs) noexcept |
| | Assign from a shared pointer.
|
| |
|
ThisType & | operator= (const ThisType &rhs) noexcept |
| | Assign from a weak pointer.
|
| |
|
ThisType & | operator= (ThisType &&rhs) noexcept |
| | Move-assign from another weak pointer.
|
| |
|
template<class U1 , class U2 > |
| ThisType & | operator= (const WeakPtr< U1, U2 > &rhs) noexcept |
| | Assign from another weak pointer allowing implicit upcasting.
|
| |
|
ThisType & | operator= (InterfaceType *ptr) noexcept |
| | Assign from a raw pointer.
|
| |
|
SharedPtrType | Lock () const noexcept |
| | Convert to a shared pointer. If expired, return a null shared pointer.
|
| |
|
InterfaceType * | Get () const noexcept |
| | Return raw pointer. If expired, return null.
|
| |
|
InterfaceType * | operator-> () const noexcept |
| | Point to the object.
|
| |
|
InterfaceType & | operator* () const noexcept |
| | Dereference the object.
|
| |
|
template<class U1 , class U2 > |
| bool | operator== (const WeakPtr< U1, U2 > &rhs) const noexcept |
| | Test for equality with another weak pointer.
|
| |
|
template<class U1 , class U2 > |
| bool | operator!= (const WeakPtr< U1, U2 > &rhs) const noexcept |
| | Test for inequality with another weak pointer.
|
| |
|
template<class U1 , class U2 > |
| bool | operator< (const WeakPtr< U1, U2 > &rhs) const noexcept |
| | Test for less than with another weak pointer.
|
| |
|
| operator InterfaceType * () const noexcept |
| | Convert to a raw pointer, null if the object is expired.
|
| |
|
void | Swap (ThisType &rhs) noexcept |
| | Swap with another WeakPtr.
|
| |
|
void | Reset (InterfaceType *ptr=nullptr) noexcept |
| | Reset with another pointer.
|
| |
|
template<class U1 , class U2 > |
| void | StaticCast (const WeakPtr< U1, U2 > &rhs) noexcept |
| | Perform a static cast from a weak pointer of another type.
|
| |
|
template<class U1 , class U2 > |
| void | DynamicCast (const WeakPtr< U1, U2 > &rhs) noexcept |
| | Perform a dynamic cast from a weak pointer of another type.
|
| |
|
int | Refs () const noexcept |
| | Return the object's reference count, or 0 if null pointer or if object has expired.
|
| |
|
int | WeakRefs () const noexcept |
| | Return the object's weak reference count.
|
| |
|
bool | Expired () const noexcept |
| | Return whether the object has expired. If null pointer, always return true.
|
| |
|
RefCount * | RefCountPtr () const noexcept |
| | Return pointer to the RefCount structure.
|
| |
|
size_t | ToHash () const noexcept |
| | Return hash value for HashSet & HashMap. Use the same hash function as for raw pointers!
|
| |
template<class InterfaceType, class RefCountedType = InterfaceType>
class Urho3D::WeakPtr< InterfaceType, RefCountedType >
Weak pointer template class with intrusive reference counting. Does not keep the object pointed to alive.