lumiera::P< TAR, BASE > Class Template Reference

#include <p.hpp>

Inheritance diagram for lumiera::P< TAR, BASE >:

Inheritance graph
[legend]

List of all members.


Detailed Description

template<class TAR, class BASE = shared_ptr<TAR>>
class lumiera::P< TAR, BASE >

customized refcounting smart pointer template, built upon std::tr1::shared_ptr, but forwarding type relationships and ordering operators to the pointee objects.

Parameters:
TAR the visible pointee type
BASE the shared-ptr type used as implementation
Note:
if the BASE smart-ptr type used as implementation implies another pointer type than the one used on the interface (=type TAR), then every access to the pointee causes an dynamic cast. Thus the pointee types need to support RTTI.

Definition at line 74 of file p.hpp.


Public Member Functions

TAR * get () const
TAR & operator* () const
TAR * operator-> () const
template<class Y>
Poperator= (std::auto_ptr< Y > &ar)
template<class Y>
Poperator= (shared_ptr< Y > const &sr)
Poperator= (P const &r)
template<class Y>
 P (std::auto_ptr< Y > &ar)
template<class Y>
 P (weak_ptr< Y > const &wr)
template<class Y>
 P (shared_ptr< Y > const &r)
 P (P const &r)
template<class Y, class D>
 P (Y *p, D d)
template<class Y>
 P (Y *p)
void swap (P &b)

Friends

template<typename _O_>
bool operator!= (P const &p, P< _O_ > const &q)
template<typename _O_>
bool operator< (P const &p, P< _O_ > const &q)
template<typename _O_>
bool operator<= (P const &p, P< _O_ > const &q)
template<typename _O_>
bool operator== (P const &p, P< _O_ > const &q)
template<typename _O_>
bool operator> (P const &p, P< _O_ > const &q)
template<typename _O_>
bool operator>= (P const &p, P< _O_ > const &q)

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

Generated on Fri Nov 7 22:15:48 2008 for Lumiera by  doxygen 1.5.6