smart_ptr.h File Reference

#include <functional>
#include <stdexcept>
#include <cassert>

Include dependency graph for smart_ptr.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  CompileTimeError< true >
struct  Select< flag, T, U >
struct  Select< false, T, U >
struct  Private::ConversionHelper< T, U >
struct  Private::ConversionHelper< T, U >::ConversionHelper::Big
class  DefaultSPStorage< T >
class  RefCounted< P >
struct  AllowConversion
struct  DisallowConversion
struct  NoCheck< P >
struct  AssertCheck< P >
struct  AssertCheckStrict< P >
struct  NullPointerException
struct  RejectNullStatic< P >
struct  RejectNull< P >
struct  RejectNullStrict< P >
class  ByRef< T >
struct  CSmartPtrDef< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >
class  CSmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >
struct  CSmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::CSmartPtr::Tester
struct  CSmartPtr< T, OwnershipPolicy, ConversionPolicy, CheckingPolicy, StoragePolicy >::CSmartPtr::Insipid
struct  std::less< CSmartPtr< T, OP, CP, KP, SP > >

Namespaces

namespace  Private
namespace  std

Defines

#define STATIC_CHECK(expr, msg)   { CompileTimeError<((expr) != 0)> ERROR_##msg; (void)ERROR_##msg; }

Functions

template<typename T , template< class > class OP, class CP , template< class > class KP, template< class > class SP, typename U >
bool operator== (const CSmartPtr< T, OP, CP, KP, SP > &lhs, U *rhs)
template<typename T , template< class > class OP, class CP , template< class > class KP, template< class > class SP, typename U >
bool operator== (U *lhs, const CSmartPtr< T, OP, CP, KP, SP > &rhs)
template<typename T , template< class > class OP, class CP , template< class > class KP, template< class > class SP, typename U >
bool operator!= (const CSmartPtr< T, OP, CP, KP, SP > &lhs, U *rhs)
template<typename T , template< class > class OP, class CP , template< class > class KP, template< class > class SP, typename U >
bool operator!= (U *lhs, const CSmartPtr< T, OP, CP, KP, SP > &rhs)
template<typename T , template< class > class OP, class CP , template< class > class KP, template< class > class SP, typename U >
bool operator< (const CSmartPtr< T, OP, CP, KP, SP > &lhs, U *rhs)
template<typename T , template< class > class OP, class CP , template< class > class KP, template< class > class SP, typename U >
bool operator< (U *lhs, const CSmartPtr< T, OP, CP, KP, SP > &rhs)
template<typename T , template< class > class OP, class CP , template< class > class KP, template< class > class SP, typename U >
bool operator> (const CSmartPtr< T, OP, CP, KP, SP > &lhs, U *rhs)
template<typename T , template< class > class OP, class CP , template< class > class KP, template< class > class SP, typename U >
bool operator> (U *lhs, const CSmartPtr< T, OP, CP, KP, SP > &rhs)
template<typename T , template< class > class OP, class CP , template< class > class KP, template< class > class SP, typename U >
bool operator<= (const CSmartPtr< T, OP, CP, KP, SP > &lhs, U *rhs)
template<typename T , template< class > class OP, class CP , template< class > class KP, template< class > class SP, typename U >
bool operator<= (U *lhs, const CSmartPtr< T, OP, CP, KP, SP > &rhs)
template<typename T , template< class > class OP, class CP , template< class > class KP, template< class > class SP, typename U >
bool operator>= (const CSmartPtr< T, OP, CP, KP, SP > &lhs, U *rhs)
template<typename T , template< class > class OP, class CP , template< class > class KP, template< class > class SP, typename U >
bool operator>= (U *lhs, const CSmartPtr< T, OP, CP, KP, SP > &rhs)


Define Documentation

#define STATIC_CHECK ( expr,
msg   )     { CompileTimeError<((expr) != 0)> ERROR_##msg; (void)ERROR_##msg; }

Definition at line 25 of file smart_ptr.h.


Function Documentation

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

Definition at line 759 of file smart_ptr.h.

00761     { return GetImpl(lhs) == rhs; }

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

Definition at line 776 of file smart_ptr.h.

00778     { return rhs == lhs; }

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

Definition at line 793 of file smart_ptr.h.

00795     { return !(lhs == rhs); }

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

Definition at line 810 of file smart_ptr.h.

00812     { return rhs != lhs; }

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

Definition at line 827 of file smart_ptr.h.

00828     { return GetImpl(lhs) < rhs; }

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

Definition at line 843 of file smart_ptr.h.

00844     { return GetImpl(rhs) < lhs; }

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

Definition at line 859 of file smart_ptr.h.

00861     { return rhs < lhs; }

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

Definition at line 876 of file smart_ptr.h.

00878     { return rhs < lhs; }

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

Definition at line 893 of file smart_ptr.h.

00895     { return !(rhs < lhs); }

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

Definition at line 910 of file smart_ptr.h.

00912     { return !(rhs < lhs); }

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

Definition at line 927 of file smart_ptr.h.

00929     { return !(lhs < rhs); }

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

Definition at line 944 of file smart_ptr.h.

00946     { return !(lhs < rhs); }


Generated on Tue Aug 30 02:36:48 2011 for Smacky by  doxygen 1.5.8