Lines Matching defs:member_ptr
17 template <class T> class member_ptr
20 explicit member_ptr(T *p = NULL) : m_p(p) {}
22 ~member_ptr();
43 member_ptr(const member_ptr<T>& rhs); // copy not allowed
44 void operator=(const member_ptr<T>& rhs); // assignment not allowed
49 template <class T> member_ptr<T>::~member_ptr() {delete m_p;}
50 template <class T> void member_ptr<T>::reset(T *p) {delete m_p; m_p = p;}
54 template<class T> class value_ptr : public member_ptr<T>
57 value_ptr(const T &obj) : member_ptr<T>(new T(obj)) {}
58 value_ptr(T *p = NULL) : member_ptr<T>(p) {}
60 : member_ptr<T>(rhs.m_p ? new T(*rhs.m_p) : NULL) {}
79 template<class T> class clonable_ptr : public member_ptr<T>
82 clonable_ptr(const T &obj) : member_ptr<T>(obj.Clone()) {}
83 clonable_ptr(T *p = NULL) : member_ptr<T>(p) {}
85 : member_ptr<T>(rhs.m_p ? rhs.m_p->Clone() : NULL) {}
193 : m_size(size), m_ptr(new member_ptr<T>[size]) {}
197 member_ptr<T>& operator[](size_t index)
199 const member_ptr<T>& operator[](size_t index) const
205 member_ptr<T> *newPtr = new member_ptr<T>[newSize];
218 member_ptr<T> *m_ptr;