soui 5.0.0.1
Soui5 Doc
 
Loading...
Searching...
No Matches
SSharedPtr< T, Disposer > Class Template Reference

A smart pointer class that manages the lifetime of an object using reference counting. More...

#include <SSharedPtr.hpp>

Public Member Functions

 SSharedPtr ()
 Default constructor.
 
 SSharedPtr (T *ptr)
 Constructor.
 
 SSharedPtr (const SSharedPtr< T, Disposer > &obj)
 Copy constructor.
 
 ~SSharedPtr ()
 Destructor.
 
SSharedPtroperator= (const SSharedPtr< T, Disposer > &obj)
 Assignment operator.
 
const T * operator-> () const
 Returns the object pointer.
 
T * operator-> ()
 Returns the object pointer.
 
const T * ptr () const
 Returns the object pointer.
 
T * ptr ()
 Returns the object pointer.
 
const T & operator* () const
 Returns the object reference.
 
T & operator* ()
 Returns the object reference.
 
bool operator== (T *ptr) const
 Compares the pointer with another pointer.
 
bool operator== (const SSharedPtr< T, Disposer > &obj) const
 Compares the pointer with another SSharedPtr object.
 

Detailed Description

template<class T, class Disposer = DefaultPtrDisposer<T>>
class SSharedPtr< T, Disposer >

A smart pointer class that manages the lifetime of an object using reference counting.

Template Parameters
TThe type of the pointer.
DisposerThe disposer class used to delete the pointer.

This class automatically deletes the managed object when the last reference to it is destroyed.

Definition at line 134 of file SSharedPtr.hpp.

Constructor & Destructor Documentation

◆ SSharedPtr() [1/3]

template<class T, class Disposer = DefaultPtrDisposer<T>>
SSharedPtr< T, Disposer >::SSharedPtr ( )
inline

Default constructor.

Initializes the shared pointer with a null pointer.

Definition at line 141 of file SSharedPtr.hpp.

◆ SSharedPtr() [2/3]

template<class T, class Disposer = DefaultPtrDisposer<T>>
SSharedPtr< T, Disposer >::SSharedPtr ( T * ptr)
inline

Constructor.

Parameters
ptrPointer to be managed.

Definition at line 149 of file SSharedPtr.hpp.

◆ SSharedPtr() [3/3]

template<class T, class Disposer = DefaultPtrDisposer<T>>
SSharedPtr< T, Disposer >::SSharedPtr ( const SSharedPtr< T, Disposer > & obj)
inline

Copy constructor.

Parameters
objAnother SSharedPtr object.

Increments the reference count of the managed pointer.

Definition at line 158 of file SSharedPtr.hpp.

◆ ~SSharedPtr()

template<class T, class Disposer = DefaultPtrDisposer<T>>
SSharedPtr< T, Disposer >::~SSharedPtr ( )
inline

Destructor.

Decrements the reference count of the managed pointer.

Definition at line 167 of file SSharedPtr.hpp.

Member Function Documentation

◆ operator*() [1/2]

template<class T, class Disposer = DefaultPtrDisposer<T>>
T & SSharedPtr< T, Disposer >::operator* ( )
inline

Returns the object reference.

Returns
Reference to the managed object.

Definition at line 240 of file SSharedPtr.hpp.

◆ operator*() [2/2]

template<class T, class Disposer = DefaultPtrDisposer<T>>
const T & SSharedPtr< T, Disposer >::operator* ( ) const
inline

Returns the object reference.

Returns
Const reference to the managed object.

Definition at line 231 of file SSharedPtr.hpp.

◆ operator->() [1/2]

template<class T, class Disposer = DefaultPtrDisposer<T>>
T * SSharedPtr< T, Disposer >::operator-> ( )
inline

Returns the object pointer.

Returns
Pointer to the managed object.

Definition at line 204 of file SSharedPtr.hpp.

◆ operator->() [2/2]

template<class T, class Disposer = DefaultPtrDisposer<T>>
const T * SSharedPtr< T, Disposer >::operator-> ( ) const
inline

Returns the object pointer.

Returns
Const pointer to the managed object.

Definition at line 195 of file SSharedPtr.hpp.

◆ operator=()

template<class T, class Disposer = DefaultPtrDisposer<T>>
SSharedPtr & SSharedPtr< T, Disposer >::operator= ( const SSharedPtr< T, Disposer > & obj)
inline

Assignment operator.

Parameters
objAnother SSharedPtr object.
Returns
Reference to the current object.

Decrements the reference count of the original pointer and increments the reference count of the new pointer.

Definition at line 178 of file SSharedPtr.hpp.

◆ operator==() [1/2]

template<class T, class Disposer = DefaultPtrDisposer<T>>
bool SSharedPtr< T, Disposer >::operator== ( const SSharedPtr< T, Disposer > & obj) const
inline

Compares the pointer with another SSharedPtr object.

Parameters
objSSharedPtr object to compare with.
Returns
TRUE if the pointers are equal, FALSE otherwise.

Definition at line 260 of file SSharedPtr.hpp.

◆ operator==() [2/2]

template<class T, class Disposer = DefaultPtrDisposer<T>>
bool SSharedPtr< T, Disposer >::operator== ( T * ptr) const
inline

Compares the pointer with another pointer.

Parameters
ptrPointer to compare with.
Returns
TRUE if the pointers are equal, FALSE otherwise.

Definition at line 250 of file SSharedPtr.hpp.

◆ ptr() [1/2]

template<class T, class Disposer = DefaultPtrDisposer<T>>
T * SSharedPtr< T, Disposer >::ptr ( )
inline

Returns the object pointer.

Returns
Pointer to the managed object.

Definition at line 222 of file SSharedPtr.hpp.

◆ ptr() [2/2]

template<class T, class Disposer = DefaultPtrDisposer<T>>
const T * SSharedPtr< T, Disposer >::ptr ( ) const
inline

Returns the object pointer.

Returns
Const pointer to the managed object.

Definition at line 213 of file SSharedPtr.hpp.


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