OwnerPtr — A pointer that owns the object pointed to.
template<typename T> class OwnerPtr : public PtrBaseSernaApi::PtrBase< T > { public: // Allows correct passing of OwnerPtr by value as a temporary object. template<typename T1> struct OwnerPtrRef { // construct/copy/destruct OwnerPtrRef(T1 *); // public member functions T1 * p_; }; // construct/copy/destruct OwnerPtr(); OwnerPtr(T *); template<class T1 > OwnerPtr(OwnerPtr< T1 > &); OwnerPtr(OwnerPtrRef< T >); OwnerPtr& operator=(T *); template<class T1 > OwnerPtr& operator=(OwnerPtr< T1 > &); ~OwnerPtr(); // public member functions void reset(T *) ; void clear() ; template<class T1 > operator OwnerPtrRef< T1 >() ; template<class T1 > operator OwnerPtr< T1 >() ; };