bdm::object_ptr< T > Class Template Reference

A wrapper of shared_ptr which is never empty. More...

#include <shared_ptr.h>

List of all members.

Public Member Functions

 object_ptr ()
 Default constructor.
 object_ptr (const shared_ptr< T > &b)
 Upcast from shared_ptr<T> to object_ptr<T>.
 object_ptr (T *p)
object_ptr< T > & operator= (const object_ptr< T > &other)
 Assignment operator.
T * get ()
const T * get () const
T * operator-> ()
const T * operator-> () const
T & operator* ()
const T & operator* () const
bool unique () const
 Returns use_count() == 1.
long use_count () const
 operator bool () const
 Boolean cast.
 operator shared_ptr< const U > () const
 const cast
void swap (shared_ptr &other)
 Efficient swap for shared_ptr.


Detailed Description

template<typename T>
class bdm::object_ptr< T >

A wrapper of shared_ptr which is never empty.

T must have a default constructor.

Note that shared_ptr's destructor isn't virtual - don't call delete on pointers to instances of this class.


Constructor & Destructor Documentation

template<typename T>
bdm::object_ptr< T >::object_ptr (  )  [inline]

Default constructor.

Calls T's default constructor.

template<typename T>
bdm::object_ptr< T >::object_ptr ( const shared_ptr< T > &  b  )  [inline]

Upcast from shared_ptr<T> to object_ptr<T>.

Parameters:
b The shared pointer, which must not be empty.

References bdm_assert_debug.

template<typename T>
bdm::object_ptr< T >::object_ptr ( T *  p  )  [inline]

Constructs an object_ptr that owns the pointer p. p must have been alllocated by new!

References bdm_assert_debug.


Member Function Documentation

const T * bdm::shared_ptr< T >::get (  )  const [inline, inherited]

Returns the stored pointer (which remains owned by this instance). For empty instances, this method returns NULL.

T * bdm::shared_ptr< T >::get (  )  [inline, inherited]

Returns the stored pointer (which remains owned by this instance). For empty instances, this method returns NULL.

bdm::shared_ptr< T >::operator bool (  )  const [inline, inherited]

Boolean cast.

This operator returns true if and only if the instance isn't empty.

bdm::shared_ptr< T >::operator shared_ptr< const U > (  )  const [inline, inherited]

const cast

Shared pointer to T can be converted to shared pointer to const T, just like T * can be converted to T const *.

const T & bdm::shared_ptr< T >::operator* (  )  const [inline, inherited]

Returns a reference to the object pointed to by the stored pointer. This method may only be called when the stored pointer isn't NULL.

T & bdm::shared_ptr< T >::operator* (  )  [inline, inherited]

Returns a reference to the object pointed to by the stored pointer. This method may only be called when the stored pointer isn't NULL.

const T * bdm::shared_ptr< T >::operator-> (  )  const [inline, inherited]

Returns the stored pointer (which remains owned by this instance). This method may only be called when the stored pointer isn't NULL.

T * bdm::shared_ptr< T >::operator-> (  )  [inline, inherited]

Dereferences the stored pointer (which remains owned by this instance). This method may only be called when the stored pointer isn't NULL.

long bdm::shared_ptr< T >::use_count (  )  const [inline, inherited]

Returns the number of shared_ptr instances (including this instance) that share ownership with this instance. For empty instances, this method returns 0.


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

Generated on Wed Oct 7 17:34:48 2009 for mixpp by  doxygen 1.5.9