Smart pointers

Collaboration diagram for Smart pointers:

Namespaces

namespace  std

Modules

 Ownership policies
 Storage policies
 Conversion policies
 Checking policies
 StrongPtr Ownership policies
 Delete policies
 Reset policies

Classes

struct  std::less< Loki::StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > >
class  Loki::RefToValue< T >
struct  Loki::NullPointerException
class  Loki::SmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy, ConstnessPolicy >
class  Loki::StrongPtr< T, Strong, OwnershipPolicy, ConversionPolicy, CheckingPolicy, ResetPolicy, DeletePolicy, ConstnessPolicy >

Functions

template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP1, typename U>
bool Loki::operator== (const SmartPtr< T, OP, CP, KP, SP, CNP1 > &lhs, U *rhs)
template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP1, typename U>
bool Loki::operator== (U *lhs, const SmartPtr< T, OP, CP, KP, SP, CNP1 > &rhs)
template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator!= (const SmartPtr< T, OP, CP, KP, SP, CNP > &lhs, U *rhs)
template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator!= (U *lhs, const SmartPtr< T, OP, CP, KP, SP, CNP > &rhs)
template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator< (const SmartPtr< T, OP, CP, KP, SP, CNP > &lhs, U *rhs)
template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator< (U *lhs, const SmartPtr< T, OP, CP, KP, SP, CNP > &rhs)
template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator> (const SmartPtr< T, OP, CP, KP, SP, CNP > &lhs, U *rhs)
template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator> (U *lhs, const SmartPtr< T, OP, CP, KP, SP, CNP > &rhs)
template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator<= (const SmartPtr< T, OP, CP, KP, SP, CNP > &lhs, U *rhs)
template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator<= (U *lhs, const SmartPtr< T, OP, CP, KP, SP, CNP > &rhs)
template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator>= (const SmartPtr< T, OP, CP, KP, SP, CNP > &lhs, U *rhs)
template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator>= (U *lhs, const SmartPtr< T, OP, CP, KP, SP, CNP > &rhs)
template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator== (const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &lhs, U *rhs)
template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator== (U *lhs, const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &rhs)
template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator!= (const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &lhs, U *rhs)
template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator!= (U *lhs, const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &rhs)
template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator< (const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &lhs, U *rhs)
template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator< (U *lhs, const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &rhs)
template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator> (const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &lhs, U *rhs)
template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator> (U *lhs, const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &rhs)
template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator<= (const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &lhs, U *rhs)
template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator<= (U *lhs, const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &rhs)
template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator>= (const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &lhs, U *rhs)
template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator>= (U *lhs, const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &rhs)


Detailed Description

Policy based implementation of a smart pointer

Function Documentation

template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator!= ( U *  lhs,
const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &  rhs 
) [inline]

operator!= for lhs = raw pointer, rhs = StrongPtr

Definition at line 1478 of file StrongPtr.h.

References Loki::StrongPtr< T, Strong, OwnershipPolicy, ConversionPolicy, CheckingPolicy, ResetPolicy, DeletePolicy, ConstnessPolicy >::Equals().

Here is the call graph for this function:

template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator!= ( const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &  lhs,
U *  rhs 
) [inline]

operator!= for lhs = StrongPtr, rhs = raw pointer

Definition at line 1458 of file StrongPtr.h.

References Loki::StrongPtr< T, Strong, OwnershipPolicy, ConversionPolicy, CheckingPolicy, ResetPolicy, DeletePolicy, ConstnessPolicy >::Equals().

Here is the call graph for this function:

template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator!= ( U *  lhs,
const SmartPtr< T, OP, CP, KP, SP, CNP > &  rhs 
) [inline]

operator!= for lhs = raw pointer, rhs = SmartPtr

Definition at line 1574 of file SmartPtr.h.

template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator!= ( const SmartPtr< T, OP, CP, KP, SP, CNP > &  lhs,
U *  rhs 
) [inline]

operator!= for lhs = SmartPtr, rhs = raw pointer

Definition at line 1555 of file SmartPtr.h.

template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator< ( U *  lhs,
const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &  rhs 
) [inline]

operator< for lhs = raw pointer, rhs = StrongPtr

Definition at line 1518 of file StrongPtr.h.

References Loki::StrongPtr< T, Strong, OwnershipPolicy, ConversionPolicy, CheckingPolicy, ResetPolicy, DeletePolicy, ConstnessPolicy >::GreaterThan().

Here is the call graph for this function:

template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator< ( const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &  lhs,
U *  rhs 
) [inline]

operator< for lhs = StrongPtr, rhs = raw pointer

Definition at line 1498 of file StrongPtr.h.

References Loki::StrongPtr< T, Strong, OwnershipPolicy, ConversionPolicy, CheckingPolicy, ResetPolicy, DeletePolicy, ConstnessPolicy >::LessThan().

Here is the call graph for this function:

template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator< ( U *  lhs,
const SmartPtr< T, OP, CP, KP, SP, CNP > &  rhs 
) [inline]

operator< for lhs = raw pointer, rhs = SmartPtr

Definition at line 1614 of file SmartPtr.h.

References Loki::GetImpl().

Here is the call graph for this function:

template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator< ( const SmartPtr< T, OP, CP, KP, SP, CNP > &  lhs,
U *  rhs 
) [inline]

operator< for lhs = SmartPtr, rhs = raw pointer

Definition at line 1593 of file SmartPtr.h.

References Loki::GetImpl().

Here is the call graph for this function:

template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator<= ( U *  lhs,
const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &  rhs 
) [inline]

operator<= for lhs = raw pointer, rhs = StrongPtr

Definition at line 1598 of file StrongPtr.h.

References Loki::StrongPtr< T, Strong, OwnershipPolicy, ConversionPolicy, CheckingPolicy, ResetPolicy, DeletePolicy, ConstnessPolicy >::LessThan().

Here is the call graph for this function:

template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator<= ( const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &  lhs,
U *  rhs 
) [inline]

operator<= for lhs = StrongPtr, rhs = raw pointer

Definition at line 1578 of file StrongPtr.h.

References Loki::StrongPtr< T, Strong, OwnershipPolicy, ConversionPolicy, CheckingPolicy, ResetPolicy, DeletePolicy, ConstnessPolicy >::GreaterThan().

Here is the call graph for this function:

template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator<= ( U *  lhs,
const SmartPtr< T, OP, CP, KP, SP, CNP > &  rhs 
) [inline]

operator<= for lhs = raw pointer, rhs = SmartPtr

Definition at line 1692 of file SmartPtr.h.

template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator<= ( const SmartPtr< T, OP, CP, KP, SP, CNP > &  lhs,
U *  rhs 
) [inline]

operator<= for lhs = SmartPtr, rhs = raw pointer

Definition at line 1673 of file SmartPtr.h.

template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator== ( U *  lhs,
const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &  rhs 
) [inline]

operator== for lhs = raw pointer, rhs = StrongPtr

Definition at line 1438 of file StrongPtr.h.

References Loki::StrongPtr< T, Strong, OwnershipPolicy, ConversionPolicy, CheckingPolicy, ResetPolicy, DeletePolicy, ConstnessPolicy >::Equals().

Here is the call graph for this function:

template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator== ( const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &  lhs,
U *  rhs 
) [inline]

operator== for lhs = StrongPtr, rhs = raw pointer

Definition at line 1418 of file StrongPtr.h.

References Loki::StrongPtr< T, Strong, OwnershipPolicy, ConversionPolicy, CheckingPolicy, ResetPolicy, DeletePolicy, ConstnessPolicy >::Equals().

Here is the call graph for this function:

template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP1, typename U>
bool Loki::operator== ( U *  lhs,
const SmartPtr< T, OP, CP, KP, SP, CNP1 > &  rhs 
) [inline]

operator== for lhs = raw pointer, rhs = SmartPtr

Definition at line 1536 of file SmartPtr.h.

template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP1, typename U>
bool Loki::operator== ( const SmartPtr< T, OP, CP, KP, SP, CNP1 > &  lhs,
U *  rhs 
) [inline]

operator== for lhs = SmartPtr, rhs = raw pointer

Definition at line 1517 of file SmartPtr.h.

References Loki::GetImpl().

Here is the call graph for this function:

template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator> ( U *  lhs,
const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &  rhs 
) [inline]

operator> for lhs = raw pointer, rhs = StrongPtr

Definition at line 1558 of file StrongPtr.h.

References Loki::StrongPtr< T, Strong, OwnershipPolicy, ConversionPolicy, CheckingPolicy, ResetPolicy, DeletePolicy, ConstnessPolicy >::LessThan().

Here is the call graph for this function:

template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator> ( U *  lhs,
const SmartPtr< T, OP, CP, KP, SP, CNP > &  rhs 
) [inline]

operator> for lhs = raw pointer, rhs = SmartPtr

Definition at line 1654 of file SmartPtr.h.

template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator>= ( U *  lhs,
const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &  rhs 
) [inline]

operator>= for lhs = raw pointer, rhs = StrongPtr

Definition at line 1638 of file StrongPtr.h.

References Loki::StrongPtr< T, Strong, OwnershipPolicy, ConversionPolicy, CheckingPolicy, ResetPolicy, DeletePolicy, ConstnessPolicy >::GreaterThan().

Here is the call graph for this function:

template<typename U, typename T, bool S, class OP, class CP, template< class > class KP, template< class > class RP, template< class > class DP, template< class > class CNP>
bool Loki::operator>= ( const StrongPtr< T, S, OP, CP, KP, RP, DP, CNP > &  lhs,
U *  rhs 
) [inline]

operator>= for lhs = StrongPtr, rhs = raw pointer

Definition at line 1618 of file StrongPtr.h.

References Loki::StrongPtr< T, Strong, OwnershipPolicy, ConversionPolicy, CheckingPolicy, ResetPolicy, DeletePolicy, ConstnessPolicy >::LessThan().

Here is the call graph for this function:

template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator>= ( U *  lhs,
const SmartPtr< T, OP, CP, KP, SP, CNP > &  rhs 
) [inline]

operator>= for lhs = raw pointer, rhs = SmartPtr

Definition at line 1730 of file SmartPtr.h.

template<typename T, template< class > class OP, class CP, template< class > class KP, template< class > class SP, template< class > class CNP, typename U>
bool Loki::operator>= ( const SmartPtr< T, OP, CP, KP, SP, CNP > &  lhs,
U *  rhs 
) [inline]

operator>= for lhs = SmartPtr, rhs = raw pointer

Definition at line 1711 of file SmartPtr.h.


Generated on Sun Feb 25 16:52:30 2007 for Loki by  doxygen 1.5.1-p1