#ifndef INPUTS_MEMORY_H #define INPUTS_MEMORY_H namespace std { inline namespace _1 { template struct auto_ptr_ref { Y *y_; }; template class auto_ptr { public: typedef X element_type; explicit auto_ptr(X *p = 0) throw() {} auto_ptr(auto_ptr &) throw() {} template auto_ptr(auto_ptr &) throw() {} auto_ptr &operator=(auto_ptr &) throw() { return *this; } template auto_ptr &operator=(auto_ptr &) throw() { return *this; } auto_ptr &operator=(auto_ptr_ref r) throw() { return *this; } ~auto_ptr() throw() {} auto_ptr(auto_ptr_ref r) throw() : x_(r.y_) {} template operator auto_ptr_ref() throw() { auto_ptr_ref r; r.y_ = x_; return r; } template operator auto_ptr() throw() { return auto_ptr(x_); } private: X *x_; }; template <> class auto_ptr { public: typedef void element_type; }; } // namespace _1 } // end namespace std #endif // INPUTS_MEMORY_H