#include <shared_ptr.h>
Public Member Functions | |
| shared_ptr () | |
| Default constructor. | |
| shared_ptr (T *p) | |
| shared_ptr (const shared_ptr< T > &other) | |
| Copy constructor. | |
| template<typename U > | |
| shared_ptr (const shared_ptr< U > &other) | |
| Generalized copy. | |
| ~shared_ptr () | |
| shared_ptr< T > & | operator= (const shared_ptr< T > &other) |
| Assignment operator. | |
| T * | get () |
| T * | operator-> () |
| T & | operator* () |
| const T * | get () const |
| const T * | operator-> () const |
| const T & | operator* () const |
| bool | unique () const |
| Returns use_count() == 1. | |
| long | use_count () const |
| operator bool () const | |
| Boolean cast. | |
| template<typename U > | |
| operator shared_ptr< const U > () const | |
| const cast | |
| void | swap (shared_ptr &other) |
| Efficient swap for shared_ptr. | |
Friends | |
| class | shared_ptr |
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...
| bdm::shared_ptr< T >::shared_ptr | ( | ) | [inline] |
Default constructor.
Creates an empty shared_ptr - one that doesn't point anywhere.
| 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!
| bdm::shared_ptr< T >::shared_ptr | ( | const shared_ptr< T > & | other | ) | [inline] |
Copy constructor.
If other is empty, constructs an empty shared_ptr; otherwise, constructs a shared_ptr that shares ownership with other.
| bdm::shared_ptr< T >::shared_ptr | ( | const shared_ptr< U > & | other | ) | [inline] |
Generalized copy.
Allows initialization of shared pointer of a base type from raw pointer to a derived type.
If other is empty, constructs an empty shared_ptr; otherwise, constructs a shared_ptr that shares ownership with other.
| bdm::shared_ptr< T >::~shared_ptr | ( | ) | [inline] |
Destructor.
| const T* bdm::shared_ptr< T >::get | ( | ) | const [inline] |
Returns the stored pointer (which remains owned by this instance). For empty instances, this method returns NULL.
| T* bdm::shared_ptr< T >::get | ( | ) | [inline] |
Returns the stored pointer (which remains owned by this instance). For empty instances, this method returns NULL.
Referenced by bdm::mepdf::from_setting(), bdm::mepdf::mepdf(), and bdm::Kalman< fsqmat >::posterior().
| bdm::shared_ptr< T >::operator bool | ( | ) | const [inline] |
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] |
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] |
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] |
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] |
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] |
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] |
Returns the number of shared_ptr instances (including this instance) that share ownership with this instance. For empty instances, this method returns 0.
1.5.9