My Project
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
cow_ptr< T > Class Template Reference

cow_ptr is a Copy On Write smart pointer. It does not require the pointee to have clone function logic. More...

#include <cow_ptr.hpp>

Public Types

enum  implement_default_object { eYes, eNo }
 
typedef T * pointer
 
typedef T & reference
 

Public Member Functions

template<typename T_obj >
 cow_ptr (T_obj *type)
 
 cow_ptr (const cow_ptr &Src)
 
template<class CompatibleDerivedT >
 cow_ptr (const cow_ptr< CompatibleDerivedT > &Src)
 
template<class CompatibleDerivedT >
cow_ptroperator= (const cow_ptr< CompatibleDerivedT > &Src)
 
cow_ptroperator= (const cow_ptr &Src)
 
 cow_ptr (implement_default_object use_default_obj=eYes)
 
bool operator! () const
 
template<class T2 >
cow_ptrequal (const T2 &Src)
 
T * operator-> ()
 
T & operator* ()
 
const T * operator-> () const
 
const T & operator* () const
 
cow_ptroperator+= (const cow_ptr &Src)
 
template<class T2 >
cow_ptroperator+= (const T2 &Src)
 
cow_ptroperator+ (const cow_ptr &Src)
 
cow_ptroperator-= (const cow_ptr &Src)
 
cow_ptroperator- (const cow_ptr &Src)
 
clone_fct_Type get_function_ptr () const
 
T * get_ptr ()
 
const T * c_ptr () const
 
const T & c_ref () const
 
void swap (cow_ptr< T > &other) throw ()
 
bool is_ref_linked () const
 
template<class PT , class FPT >
void make_clone (PT *&ptr, FPT &func_ptr) const
 

Static Public Member Functions

static void SetDefaultObject (const cow_ptr< T > &NewValue)
 

Detailed Description

template<typename T>
class cow_ptr< T >

cow_ptr is a Copy On Write smart pointer. It does not require the pointee to have clone function logic.


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