Core::SharedPtr< T > Class Template Reference

A reference counted smart pointer. More...

#include <SharedPtr.hpp>

Inheritance diagram for Core::SharedPtr< T >:

Core::SmartPtr< T > Core::NotCopyable List of all members.

Public Member Functions

 SharedPtr ()
 Default constructor.
 SharedPtr (T *pPointer)
 Construction from a raw pointer.
 SharedPtr (const SharedPtr< T > &oPointer)
 Copy constructor.
 ~SharedPtr ()
 Destructor.
SharedPtroperator= (const SharedPtr< T > &oPointer)
 Assignment operator.
void Reset (T *pPointer=nullptr)
 Change pointer ownership.

Private Attributes

long * m_pRefCnt
 The pointer reference count.

Detailed Description

template<typename T>
class Core::SharedPtr< T >

A reference counted smart pointer.


Constructor & Destructor Documentation

template<typename T>
Core::SharedPtr< T >::SharedPtr (  )  [inline]

Default constructor.

Sets pointer and reference count to NULL.

template<typename T>
Core::SharedPtr< T >::SharedPtr ( T *  pPointer  )  [inline, explicit]

Construction from a raw pointer.

Takes ownership of a new pointer.

template<typename T>
Core::SharedPtr< T >::SharedPtr ( const SharedPtr< T > &  oPointer  )  [inline]

Copy constructor.

Takes shared ownership of another pointer.

template<typename T>
Core::SharedPtr< T >::~SharedPtr (  )  [inline]

Destructor.

Frees the pointer if the last reference.


Member Function Documentation

template<typename T>
SharedPtr< T > & Core::SharedPtr< T >::operator= ( const SharedPtr< T > &  oPointer  )  [inline]

Assignment operator.

Frees the current pointer if the last reference and takes shared ownership of another pointer.

template<typename T>
void Core::SharedPtr< T >::Reset ( T *  pPointer = nullptr  )  [inline]

Change pointer ownership.

Frees the current pointer if the last reference and takes shared ownership of another pointer, if provided.


Member Data Documentation

template<typename T>
long* Core::SharedPtr< T >::m_pRefCnt [private]

The pointer reference count.


The documentation for this class was generated from the following file:
Generated on Wed Feb 13 22:53:28 2008 for Core Library by  doxygen 1.5.2