SPH
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
SharedPtr< T > Class Template Reference

#include <SharedPtr.h>

Public Member Functions

 SharedPtr ()
 
 SharedPtr (T *ptr)
 
 SharedPtr (const SharedPtr &other)
 
template<typename T2 >
 SharedPtr (const SharedPtr< T2 > &other)
 
 SharedPtr (SharedPtr &&other)
 
template<typename T2 >
 SharedPtr (SharedPtr< T2 > &&other)
 
template<typename T2 >
 SharedPtr (AutoPtr< T2 > &&ptr)
 
 SharedPtr (std::nullptr_t)
 
SharedPtroperator= (const SharedPtr &other)
 
template<typename T2 >
SharedPtroperator= (const SharedPtr< T2 > &other)
 
SharedPtroperator= (SharedPtr &&other)
 
template<typename T2 >
SharedPtroperator= (SharedPtr< T2 > &&other)
 
SharedPtroperator= (std::nullptr_t)
 
 ~SharedPtr ()
 
INLINE T * operator-> () const
 
INLINE T & operator* () const
 
INLINE operator bool () const
 
INLINE bool operator! () const
 
INLINE RawPtr< T > get () const
 
INLINE void reset ()
 
INLINE T * release ()
 
INLINE Size getUseCount ()
 
template<typename... TArgs>
decltype(auto) INLINE operator() (TArgs &&... args) const
 

Protected Member Functions

 SharedPtr (T *ptr, Detail::ControlBlockHolder *block)
 

Protected Attributes

T * ptr
 
Detail::ControlBlockHolderblock
 

Friends

template<typename >
class SharedPtr
 
template<typename >
class WeakPtr
 
class SharedToken
 
class WeakToken
 
template<typename >
class LockingPtr
 
template<typename >
class SharedFromThis
 

Detailed Description

template<typename T>
class SharedPtr< T >

Definition at line 96 of file SharedPtr.h.

Constructor & Destructor Documentation

◆ SharedPtr() [1/9]

template<typename T >
SharedPtr< T >::SharedPtr ( T *  ptr,
Detail::ControlBlockHolder block 
)
inlineexplicitprotected

Definition at line 112 of file SharedPtr.h.

◆ SharedPtr() [2/9]

template<typename T >
SharedPtr< T >::SharedPtr ( )
inline

Definition at line 117 of file SharedPtr.h.

◆ SharedPtr() [3/9]

template<typename T >
SharedPtr< T >::SharedPtr ( T *  ptr)
inlineexplicit

Definition at line 121 of file SharedPtr.h.

◆ SharedPtr() [4/9]

template<typename T >
SharedPtr< T >::SharedPtr ( const SharedPtr< T > &  other)
inline

Definition at line 131 of file SharedPtr.h.

◆ SharedPtr() [5/9]

template<typename T >
template<typename T2 >
SharedPtr< T >::SharedPtr ( const SharedPtr< T2 > &  other)
inline

Definition at line 137 of file SharedPtr.h.

◆ SharedPtr() [6/9]

template<typename T >
SharedPtr< T >::SharedPtr ( SharedPtr< T > &&  other)
inline

Definition at line 142 of file SharedPtr.h.

◆ SharedPtr() [7/9]

template<typename T >
template<typename T2 >
SharedPtr< T >::SharedPtr ( SharedPtr< T2 > &&  other)
inline

Definition at line 150 of file SharedPtr.h.

◆ SharedPtr() [8/9]

template<typename T >
template<typename T2 >
SharedPtr< T >::SharedPtr ( AutoPtr< T2 > &&  ptr)
inline

Definition at line 158 of file SharedPtr.h.

◆ SharedPtr() [9/9]

template<typename T >
SharedPtr< T >::SharedPtr ( std::nullptr_t  )
inline

Definition at line 161 of file SharedPtr.h.

◆ ~SharedPtr()

template<typename T >
SharedPtr< T >::~SharedPtr ( )
inline

Definition at line 201 of file SharedPtr.h.

Member Function Documentation

◆ get()

template<typename T >
INLINE RawPtr<T> SharedPtr< T >::get ( ) const
inline

Definition at line 223 of file SharedPtr.h.

◆ getUseCount()

template<typename T >
INLINE Size SharedPtr< T >::getUseCount ( )
inline

Definition at line 246 of file SharedPtr.h.

◆ operator bool()

template<typename T >
INLINE SharedPtr< T >::operator bool ( ) const
inlineexplicit

Definition at line 215 of file SharedPtr.h.

◆ operator!()

template<typename T >
INLINE bool SharedPtr< T >::operator! ( ) const
inline

Definition at line 219 of file SharedPtr.h.

◆ operator()()

template<typename T >
template<typename... TArgs>
decltype(auto) INLINE SharedPtr< T >::operator() ( TArgs &&...  args) const
inline

Definition at line 255 of file SharedPtr.h.

◆ operator*()

template<typename T >
INLINE T& SharedPtr< T >::operator* ( ) const
inline

Definition at line 210 of file SharedPtr.h.

◆ operator->()

template<typename T >
INLINE T* SharedPtr< T >::operator-> ( ) const
inline

Definition at line 205 of file SharedPtr.h.

◆ operator=() [1/5]

template<typename T >
SharedPtr& SharedPtr< T >::operator= ( const SharedPtr< T > &  other)
inline

Definition at line 165 of file SharedPtr.h.

◆ operator=() [2/5]

template<typename T >
template<typename T2 >
SharedPtr& SharedPtr< T >::operator= ( const SharedPtr< T2 > &  other)
inline

Definition at line 173 of file SharedPtr.h.

◆ operator=() [3/5]

template<typename T >
SharedPtr& SharedPtr< T >::operator= ( SharedPtr< T > &&  other)
inline

Definition at line 180 of file SharedPtr.h.

◆ operator=() [4/5]

template<typename T >
template<typename T2 >
SharedPtr& SharedPtr< T >::operator= ( SharedPtr< T2 > &&  other)
inline

Definition at line 187 of file SharedPtr.h.

◆ operator=() [5/5]

template<typename T >
SharedPtr& SharedPtr< T >::operator= ( std::nullptr_t  )
inline

Definition at line 196 of file SharedPtr.h.

◆ release()

template<typename T >
INLINE T* SharedPtr< T >::release ( )
inline

Definition at line 236 of file SharedPtr.h.

◆ reset()

template<typename T >
INLINE void SharedPtr< T >::reset ( )
inline

Definition at line 227 of file SharedPtr.h.

Friends And Related Function Documentation

◆ LockingPtr

template<typename T >
template<typename >
friend class LockingPtr
friend

Definition at line 104 of file SharedPtr.h.

◆ SharedFromThis

template<typename T >
template<typename >
friend class SharedFromThis
friend

Definition at line 106 of file SharedPtr.h.

◆ SharedPtr

template<typename T >
template<typename >
friend class SharedPtr
friend

Definition at line 98 of file SharedPtr.h.

◆ SharedToken

template<typename T >
friend class SharedToken
friend

Definition at line 101 of file SharedPtr.h.

◆ WeakPtr

template<typename T >
template<typename >
friend class WeakPtr
friend

Definition at line 100 of file SharedPtr.h.

◆ WeakToken

template<typename T >
friend class WeakToken
friend

Definition at line 102 of file SharedPtr.h.

Member Data Documentation

◆ block

template<typename T >
Detail::ControlBlockHolder* SharedPtr< T >::block
protected

Definition at line 110 of file SharedPtr.h.

◆ ptr

template<typename T >
T* SharedPtr< T >::ptr
protected

Definition at line 109 of file SharedPtr.h.


The documentation for this class was generated from the following files: