Lines Matching refs:deleter
44 PtrData (T* p, D d) : ptr(p), deleter(d) {}
47 PtrData (const PtrData<T2, D2>& d) : ptr(d.ptr), deleter(d.deleter) {}
50 D deleter;
61 D getDeleter (void) const throw() { return m_data.deleter; }
67 UniqueBase (T* ptr, D deleter) : m_data(ptr, deleter) {}
90 m_data.deleter(m_data.ptr);
124 template<typename T, class Deleter = DefaultDeleter<T> >
125 class MovePtr : public UniqueBase<T, Deleter>
128 MovePtr (void) : UniqueBase<T, Deleter> (DE_NULL, Deleter()) {}
129 explicit MovePtr (T* ptr, Deleter deleter = Deleter()) : UniqueBase<T, Deleter> (ptr, deleter) {}
130 MovePtr (MovePtr<T, Deleter>& other) : UniqueBase<T, Deleter> (other.releaseData()) {}
132 MovePtr& operator= (MovePtr<T, Deleter>& other);
140 MovePtr (PtrData<T, Deleter> data) : UniqueBase<T, Deleter> (data) {}
141 MovePtr& operator= (PtrData<T, Deleter> data);
200 template<typename T, class Deleter = DefaultDeleter<T> >
201 class UniquePtr : public UniqueBase<T, Deleter>
204 explicit UniquePtr (T* ptr, Deleter deleter = Deleter());
205 UniquePtr (PtrData<T, Deleter> data);
206 MovePtr<T, Deleter> move (void);
219 template<typename T, class Deleter>
220 inline UniquePtr<T, Deleter>::UniquePtr (T* ptr, Deleter deleter)
221 : UniqueBase<T, Deleter> (ptr, deleter)
225 template<typename T, class Deleter>
226 inline UniquePtr<T, Deleter>::UniquePtr (PtrData<T, Deleter> data)
227 : UniqueBase<T, Deleter> (data)
237 template<typename T, class Deleter>
238 inline MovePtr<T, Deleter> UniquePtr<T, Deleter>::move (void)
240 return MovePtr<T, Deleter>(this->releaseData());