16 #ifndef polybori_CWeakPtr_h_
17 #define polybori_CWeakPtr_h_
30 template <
class ValueType>
47 CWeakPtr(
const self& rhs): m_data(rhs.m_data) {}
54 return *(operator->());
60 throw std::runtime_error(
"Outdated weak pointer dereferenced.");
65 operator bool()
const {
return *m_data; }
#define END_NAMESPACE_PBORI
Finish project's namespace.
Definition: pbori_defs.h:77
#define BEGIN_NAMESPACE_PBORI
Start project's namespace.
Definition: pbori_defs.h:74
value_type * operator->() const
Dereferencing generates strong-referenced instance.
Definition: CWeakPtr.h:58
#define PBORI_ASSERT(arg)
Definition: pbori_defs.h:118
value_type * data_type
Definition: CWeakPtr.h:38
~CWeakPtr()
Destructor.
Definition: CWeakPtr.h:50
ValueType value_type
Definition: CWeakPtr.h:36
This class defines CWeakPtrFacade.
Definition: CWeakPtrFacade.h:36
Forward declaration of friend.
Definition: CWeakPtr.h:31
boost::shared_ptr< data_type > ptr_type
Definition: CWeakPtr.h:39
CWeakPtr(const self &rhs)
Copy constructor.
Definition: CWeakPtr.h:47
CWeakPtr(const CWeakPtrFacade< ValueType > &val)
Construct from something, which supports weak pointers.
Definition: CWeakPtr.h:43
const value_type & operator*() const
Dereferencing generates strong-referenced instance.
Definition: CWeakPtr.h:53