Lines Matching defs:MovePtr

116  * A MovePtr is smart pointer that retains sole ownership of a pointer and
119 * A MovePtr can be copied and assigned to. The pointer ownership is moved to
120 * the newly constructer or assigned-to MovePtr. Upon assignment to a
121 * MovePtr, the previously managed pointer is deleted.
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);
137 // allow copying a MovePtr by value when returning from a function. To
140 MovePtr (PtrData<T, Deleter> data) : UniqueBase<T, Deleter> (data) {}
141 MovePtr& operator= (PtrData<T, Deleter> data);
148 MovePtr<T, D>& MovePtr<T,D>::operator= (PtrData<T, D> data)
155 MovePtr<T, D>& MovePtr<T,D>::operator= (MovePtr<T, D>& other)
163 inline T* MovePtr<T,D>::release (void) throw()
168 //! Construct a MovePtr from a pointer.
170 inline MovePtr<T> movePtr (T* ptr) { return MovePtr<T>(ptr); }
172 //! Allocate and construct an object and return its address as a MovePtr.
174 inline MovePtr<T> newMovePtr (void) { return MovePtr<T>(new T()); }
176 inline MovePtr<T> newMovePtr (P0 p0) { return MovePtr<T>(new T(p0)); }
178 inline MovePtr<T> newMovePtr (P0 p0, P1 p1) { return MovePtr<T>(new T(p0, p1)); }
180 inline MovePtr<T> newMovePtr (P0 p0, P1 p1, P2 p2) { return MovePtr<T>(new T(p0, p1, p2)); }
192 * A UniquePtr can be constructed from a MovePtr. In this case it assumes
193 * ownership of the pointer from the MovePtr. Because a UniquePtr cannot be
196 * MovePtr<Foo> createFoo (void);
206 MovePtr<T, Deleter> move (void);
234 * This method returns a MovePtr that now owns the pointer. The pointer in
238 inline MovePtr<T, Deleter> UniquePtr<T, Deleter>::move (void)
240 return MovePtr<T, Deleter>(this->releaseData());
246 using details::MovePtr;