Listing 1: The standard C++ auto_ptr

namespace std
  {
  template<class X>
  class auto_ptr
      {
  public:
      typedef X element_type;
      explicit auto_ptr(X * = 0) throw();
      auto_ptr(const auto_ptr &) throw();
      template<class Y> auto_ptr
          (const auto_ptr<Y> &) throw();
      auto_ptr &operator=
          (const auto_ptr &) throw();
      template<class Y> auto_ptr &operator=
          (const auto_ptr<Y> &) throw();
          ~auto_ptr();
          X& operator*() const throw();
          X* operator->() const throw();
          X* get() const throw();
          X* release() const throw();
          };
  }
//End of File