29 lines · c
1namespace std {2 3template <typename T>4class default_delete {};5 6template <typename type, typename Deleter = std::default_delete<type>>7class unique_ptr {8public:9 unique_ptr() {}10 unique_ptr(type *ptr) {}11 unique_ptr(const unique_ptr<type> &t) = delete;12 unique_ptr(unique_ptr<type> &&t) {}13 ~unique_ptr() {}14 type &operator*() { return *ptr; }15 type *operator->() { return ptr; }16 type *release() { return ptr; }17 void reset() {}18 void reset(type *pt) {}19 void reset(type pt) {}20 unique_ptr &operator=(unique_ptr &&) { return *this; }21 template <typename T>22 unique_ptr &operator=(unique_ptr<T> &&) { return *this; }23 24private:25 type *ptr;26};27 28} // namespace std29