Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy > Class Template Reference

#include <lokiSmartPtr.h>

Inheritance diagram for Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >:

Inheritance graph
[legend]
Collaboration diagram for Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef SP::PointerType PointerType
typedef SP::StoredType StoredType
typedef SP::ReferenceType ReferenceType
typedef Select< OP::destructiveCopy,
SmartPtr, const SmartPtr
>::Result 
CopyArg

Public Member Functions

 SmartPtr ()
 SmartPtr (ExplicitArg p)
 SmartPtr (ImplicitArg p)
 SmartPtr (CopyArg &rhs)
template<typename T1, template< class > class OP1, class CP1, template< class > class KP1, template< class > class SP1>  SmartPtr (const SmartPtr< T1, OP1, CP1, KP1, SP1 > &rhs)
template<typename T1, template< class > class OP1, class CP1, template< class > class KP1, template< class > class SP1>  SmartPtr (SmartPtr< T1, OP1, CP1, KP1, SP1 > &rhs)
 SmartPtr (ByRef< SmartPtr > rhs)
 operator ByRef ()
SmartPtroperator= (CopyArg &rhs)
template<typename T1, template< class > class OP1, class CP1, template< class > class KP1, template< class > class SP1> SmartPtroperator= (const SmartPtr< T1, OP1, CP1, KP1, SP1 > &rhs)
template<typename T1, template< class > class OP1, class CP1, template< class > class KP1, template< class > class SP1> SmartPtroperator= (SmartPtr< T1, OP1, CP1, KP1, SP1 > &rhs)
void Swap (SmartPtr &rhs)
 ~SmartPtr ()
PointerType operator-> ()
PointerType operator-> () const
ReferenceType operator * ()
ReferenceType operator * () const
bool operator! () const
template<typename T1, template< class > class OP1, class CP1, template< class > class KP1, template< class > class SP1> bool operator== (const SmartPtr< T1, OP1, CP1, KP1, SP1 > &rhs) const
template<typename T1, template< class > class OP1, class CP1, template< class > class KP1, template< class > class SP1> bool operator!= (const SmartPtr< T1, OP1, CP1, KP1, SP1 > &rhs) const
template<typename T1, template< class > class OP1, class CP1, template< class > class KP1, template< class > class SP1> bool operator< (const SmartPtr< T1, OP1, CP1, KP1, SP1 > &rhs) const
 operator unspecified_boolean_type () const
 operator AutomaticConversionResult () const

Private Types

typedef StoragePolicy< T > SP
typedef OwnershipPolicy< typename
StoragePolicy< T >::PointerType
OP
typedef CheckingPolicy< typename
StoragePolicy< T >::StoredType
KP
typedef ConversionPolicy CP
typedef const StoredTypeImplicitArg
typedef Select< false, const
StoredType &, NeverMatched
>::Result 
ExplicitArg
typedef void(Tester::* unspecified_boolean_type_ )()
typedef Select< CP::allow,
Tester, unspecified_boolean_type_
>::Result 
unspecified_boolean_type
typedef Select< CP::allow,
PointerType, Insipid >::Result 
AutomaticConversionResult

Friends

void Release (SmartPtr &sp, typename SP::StoredType &p)
void Reset (SmartPtr &sp, typename SP::StoredType p)

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
class Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >


Member Typedef Documentation

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
typedef Select<CP::allow, PointerType, Insipid>::Result Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::AutomaticConversionResult [private]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
typedef Select<OP::destructiveCopy, SmartPtr, const SmartPtr>::Result Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::CopyArg
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
typedef ConversionPolicy Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::CP [private]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
typedef Select<false, const StoredType&, NeverMatched>::Result Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::ExplicitArg [private]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
typedef const StoredType& Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::ImplicitArg [private]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
typedef CheckingPolicy<typename StoragePolicy<T>::StoredType> Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::KP [private]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
typedef OwnershipPolicy<typename StoragePolicy<T>::PointerType> Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::OP [private]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
typedef SP::PointerType Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::PointerType
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
typedef SP::ReferenceType Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::ReferenceType
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
typedef StoragePolicy<T> Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::SP [private]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
typedef SP::StoredType Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::StoredType
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
typedef Select<CP::allow, Tester, unspecified_boolean_type_>::Result Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::unspecified_boolean_type [private]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
typedef void(Tester::* Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::unspecified_boolean_type_)() [private]
 


Constructor & Destructor Documentation

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::SmartPtr  )  [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::SmartPtr ExplicitArg  p  )  [inline, explicit]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::SmartPtr ImplicitArg  p  )  [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::SmartPtr CopyArg rhs  )  [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
template<typename T1, template< class > class OP1, class CP1, template< class > class KP1, template< class > class SP1>
Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::SmartPtr const SmartPtr< T1, OP1, CP1, KP1, SP1 > &  rhs  )  [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
template<typename T1, template< class > class OP1, class CP1, template< class > class KP1, template< class > class SP1>
Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::SmartPtr SmartPtr< T1, OP1, CP1, KP1, SP1 > &  rhs  )  [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::SmartPtr ByRef< SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy > >  rhs  )  [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::~SmartPtr  )  [inline]
 


Member Function Documentation

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
ReferenceType Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::operator *  )  const [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
ReferenceType Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::operator *  )  [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::operator AutomaticConversionResult  )  const [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::operator ByRef  )  [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::operator unspecified_boolean_type  )  const [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
bool Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::operator!  )  const [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
template<typename T1, template< class > class OP1, class CP1, template< class > class KP1, template< class > class SP1>
bool Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::operator!= const SmartPtr< T1, OP1, CP1, KP1, SP1 > &  rhs  )  const [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
PointerType Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::operator->  )  const [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
PointerType Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::operator->  )  [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
template<typename T1, template< class > class OP1, class CP1, template< class > class KP1, template< class > class SP1>
bool Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::operator< const SmartPtr< T1, OP1, CP1, KP1, SP1 > &  rhs  )  const [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
template<typename T1, template< class > class OP1, class CP1, template< class > class KP1, template< class > class SP1>
SmartPtr& Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::operator= SmartPtr< T1, OP1, CP1, KP1, SP1 > &  rhs  )  [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
template<typename T1, template< class > class OP1, class CP1, template< class > class KP1, template< class > class SP1>
SmartPtr& Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::operator= const SmartPtr< T1, OP1, CP1, KP1, SP1 > &  rhs  )  [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
SmartPtr& Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::operator= CopyArg rhs  )  [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
template<typename T1, template< class > class OP1, class CP1, template< class > class KP1, template< class > class SP1>
bool Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::operator== const SmartPtr< T1, OP1, CP1, KP1, SP1 > &  rhs  )  const [inline]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
void Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::Swap SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy > &  rhs  )  [inline]
 


Friends And Related Function Documentation

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
void Release SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy > &  sp,
typename SP::StoredType &  p
[friend]
 

template<typename T, template< class > class OwnershipPolicy, class ConversionPolicy, template< class > class CheckingPolicy, template< class > class StoragePolicy>
void Reset SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy > &  sp,
typename SP::StoredType  p
[friend]
 


The documentation for this class was generated from the following file:
Generated on Sun Oct 29 02:32:30 2006 for ACS C++ API by doxygen 1.3.6