bdm::shared_ptr< T > Class Template Reference

A naive implementation of roughly a subset of the std::tr1:shared_ptr spec. More...

#include <shared_ptr.h>

List of all members.

Public Member Functions

 shared_ptr ()
 Creates an empty shared_ptr - one that doesn't point anywhere.
 shared_ptr (T *p)
 shared_ptr (const shared_ptr< T > &other)
template<typename U >
 shared_ptr (const shared_ptr< U > &other)
shared_ptr< T > & operator= (const shared_ptr< T > &other)
T * get ()
T * operator-> ()
T & operator* ()
const T * get () const
const T * operator-> () const
const T & operator* () const
bool unique () const
long use_count () const
 operator bool () const
void swap (shared_ptr &other)

Friends

class shared_ptr


Detailed Description

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

A naive implementation of roughly a subset of the std::tr1:shared_ptr spec.

Really just roughly - it ignores memory exceptions, for example; also note I didn't read the spec.

The standard template would naturally be preferable, _if_ it was included in the standard libraries of all supported compilers - but as of 2009, that's still a problem...


Constructor & Destructor Documentation

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

Constructs a shared_ptr that owns the pointer p (unless p is NULL, in which case this constructor creates an empty shared_ptr). When p isn't null, it must have been alllocated by new!

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

If other is empty, constructs an empty shared_ptr; otherwise, constructs a shared_ptr that shares ownership with other.

template<typename T>
template<typename U >
bdm::shared_ptr< T >::shared_ptr ( const shared_ptr< U > &  other  )  [inline]

If other is empty, constructs an empty shared_ptr; otherwise, constructs a shared_ptr that shares ownership with other.


Member Function Documentation

template<typename T>
const T* bdm::shared_ptr< T >::get (  )  const [inline]

Returns the stored pointer (which remains owned by this instance).

template<typename T>
T* bdm::shared_ptr< T >::get (  )  [inline]

Returns the stored pointer (which remains owned by this instance).

Referenced by bdm::mepdf::from_setting(), and bdm::mepdf::mepdf().

template<typename T>
const T& bdm::shared_ptr< T >::operator* (  )  const [inline]

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.

template<typename T>
T& bdm::shared_ptr< T >::operator* (  )  [inline]

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.

template<typename T>
const T* bdm::shared_ptr< T >::operator-> (  )  const [inline]

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

template<typename T>
T* bdm::shared_ptr< T >::operator-> (  )  [inline]

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


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

Generated on Sun Aug 16 17:58:19 2009 for mixpp by  doxygen 1.5.8