namespace std { template class default_delete {}; template > class unique_ptr { public: unique_ptr() {} unique_ptr(type *ptr) {} unique_ptr(const unique_ptr &t) = delete; unique_ptr(unique_ptr &&t) {} ~unique_ptr() {} type &operator*() { return *ptr; } type *operator->() { return ptr; } type *release() { return ptr; } void reset() {} void reset(type *pt) {} void reset(type pt) {} unique_ptr &operator=(unique_ptr &&) { return *this; } template unique_ptr &operator=(unique_ptr &&) { return *this; } private: type *ptr; }; } // namespace std