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