Core Library
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
Core::SmartPtr< T > Class Template Reference

The base class for all smart-pointer types. More...

#include <SmartPtr.hpp>

Inheritance diagram for Core::SmartPtr< T >:
Core::ArrayPtr< T > Core::RefCntPtr< T > Core::SharedPtr< T > Core::UniquePtr< T >

List of all members.

Public Member Functions

const T & operator* () const
 Pointer dereference operator.
T & operator* ()
 Pointer dereference operator.
const T * operator-> () const
 Pointer-to-member operator.
T * operator-> ()
 Pointer-to-member operator.
bool operator! () const
 Not operator.
T * get () const
 Access owned pointer.
T & getRef () const
 Access owned pointer as a reference.
bool empty () const
 Query if we are not owning a pointer.

Protected Member Functions

 SmartPtr ()
 Default constructor.
 SmartPtr (T *pPointer)
 Construction from a raw pointer.
 ~SmartPtr ()
 Destructor.

Protected Attributes

T * m_pPointer
 The pointer being shadowed.

Private Member Functions

 SmartPtr (const SmartPtr &)
SmartPtroperator= (const SmartPtr &)

Detailed Description

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

The base class for all smart-pointer types.

This class provides the common smart-pointer storage and methods for accessing it. All behaviour relating to ownership must be provided by the derived classes.


Constructor & Destructor Documentation

template<typename T >
Core::SmartPtr< T >::SmartPtr ( ) [inline, protected]

Default constructor.

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

Construction from a raw pointer.

template<typename T >
Core::SmartPtr< T >::~SmartPtr ( ) [inline, protected]

Destructor.

template<typename T>
Core::SmartPtr< T >::SmartPtr ( const SmartPtr< T > &  ) [private]

Member Function Documentation

template<typename T >
const T & Core::SmartPtr< T >::operator* ( ) const [inline]

Pointer dereference operator.

Returns the currently owned pointer.

template<typename T >
T & Core::SmartPtr< T >::operator* ( ) [inline]

Pointer dereference operator.

Returns the currently owned pointer.

template<typename T >
const T * Core::SmartPtr< T >::operator-> ( ) const [inline]

Pointer-to-member operator.

Returns the currently owned pointer.

template<typename T >
T * Core::SmartPtr< T >::operator-> ( ) [inline]

Pointer-to-member operator.

Returns the currently owned pointer.

template<typename T >
bool Core::SmartPtr< T >::operator! ( ) const

Not operator.

Tests for a NULL pointer.

template<typename T >
T * Core::SmartPtr< T >::get ( ) const [inline]

Access owned pointer.

Returns the currently owned pointer.

template<typename T >
T & Core::SmartPtr< T >::getRef ( ) const [inline]

Access owned pointer as a reference.

template<typename T >
bool Core::SmartPtr< T >::empty ( ) const [inline]

Query if we are not owning a pointer.

template<typename T>
SmartPtr& Core::SmartPtr< T >::operator= ( const SmartPtr< T > &  ) [private]

Member Data Documentation

template<typename T>
T* Core::SmartPtr< T >::m_pPointer [protected]

The pointer being shadowed.


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