|
Public Types |
typedef ConstnessPolicy< T
>::Type * | ConstPointerType |
typedef ConstnessPolicy< T
>::Type & | ConstReferenceType |
typedef SP::PointerType | PointerType |
typedef SP::StoredType | StoredType |
typedef SP::ReferenceType | ReferenceType |
typedef Loki::Select< OP::destructiveCopy,
SmartPtr, const SmartPtr
>::Result | CopyArg |
Public Member Functions |
| SmartPtr () |
| SmartPtr (H *h, bool s, T *p) |
| SmartPtr (ExplicitArg p) |
| SmartPtr (ImplicitArg p) |
| SmartPtr (CopyArg &rhs) |
template<typename T1, typename H1, template< class > class OP1, class CP1, template< class > class KP1, template< class, class > class SP1, template< class > class CNP1> | SmartPtr (const SmartPtr< T1, H1, OP1, CP1, KP1, SP1, CNP1 > &rhs) |
template<typename T1, typename H1, template< class > class OP1, class CP1, template< class > class KP1, template< class, class > class SP1, template< class > class CNP1> | SmartPtr (SmartPtr< T1, H1, OP1, CP1, KP1, SP1, CNP1 > &rhs) |
| SmartPtr (Loki::RefToValue< SmartPtr > rhs) |
| operator Loki::RefToValue () |
SmartPtr & | operator= (CopyArg &rhs) |
template<typename T1, typename H1, template< class > class OP1, class CP1, template< class > class KP1, template< class, class > class SP1, template< class > class CNP1> SmartPtr & | operator= (const SmartPtr< T1, H1, OP1, CP1, KP1, SP1, CNP1 > &rhs) |
template<typename T1, typename H1, template< class > class OP1, class CP1, template< class > class KP1, template< class, class > class SP1, template< class > class CNP1> SmartPtr & | operator= (SmartPtr< T1, H1, OP1, CP1, KP1, SP1, CNP1 > &rhs) |
void | Swap (SmartPtr &rhs) |
| ~SmartPtr () |
template<typename T1, typename H1, template< class > class OP1, class CP1, template< class > class KP1, template< class, class > class SP1, template< class > class CNP1> bool | Merge (SmartPtr< T1, H1, OP1, CP1, KP1, SP1, CNP1 > &rhs) |
PointerType | operator-> () |
ConstPointerType | operator-> () const |
ReferenceType | operator * () |
ConstReferenceType | operator * () const |
bool | operator! () const |
template<typename T1, typename H1, template< class > class OP1, class CP1, template< class > class KP1, template< class, class > class SP1, template< class > class CNP1> bool | operator== (const SmartPtr< T1, H1, OP1, CP1, KP1, SP1, CNP1 > &rhs) const |
template<typename T1, typename H1, template< class > class OP1, class CP1, template< class > class KP1, template< class, class > class SP1, template< class > class CNP1> bool | operator!= (const SmartPtr< T1, H1, OP1, CP1, KP1, SP1, CNP1 > &rhs) const |
template<typename T1, typename H1, template< class > class OP1, class CP1, template< class > class KP1, template< class, class > class SP1, template< class > class CNP1> bool | operator< (const SmartPtr< T1, H1, OP1, CP1, KP1, SP1, CNP1 > &rhs) const |
template<typename T1, typename H1, template< class > class OP1, class CP1, template< class > class KP1, template< class, class > class SP1, template< class > class CNP1> bool | operator> (const SmartPtr< T1, H1, OP1, CP1, KP1, SP1, CNP1 > &rhs) |
template<typename T1, typename H1, template< class > class OP1, class CP1, template< class > class KP1, template< class, class > class SP1, template< class > class CNP1> bool | operator<= (const SmartPtr< T1, H1, OP1, CP1, KP1, SP1, CNP1 > &rhs) |
template<typename T1, typename H1, template< class > class OP1, class CP1, template< class > class KP1, template< class, class > class SP1, template< class > class CNP1> bool | operator>= (const SmartPtr< T1, H1, OP1, CP1, KP1, SP1, CNP1 > &rhs) |
| operator unspecified_boolean_type () const |
| operator AutomaticConversionResult () const |
Static Public Member Functions |
T * | GetPointer (const SmartPtr &sp) |
Private Types |
typedef StoragePolicy< T, H > | SP |
typedef OwnershipPolicy< typename
StoragePolicy< T, H >::PointerType > | OP |
typedef CheckingPolicy< typename
StoragePolicy< T, H >::StoredType > | KP |
typedef ConversionPolicy | CP |
typedef const StoredType & | ImplicitArg |
typedef Loki::Select< false,
const StoredType &, NeverMatched
>::Result | ExplicitArg |
typedef void(Tester::* | unspecified_boolean_type_ )() |
typedef Loki::Select< CP::allow,
Tester, unspecified_boolean_type_
>::Result | unspecified_boolean_type |
typedef Loki::Select< CP::allow,
PointerType, Insipid >::Result | AutomaticConversionResult |
Friends |
void | Release (SmartPtr &sp, typename SP::StoredType &p) |
void | Reset (SmartPtr &sp, typename SP::StoredType p) |