//  (C) Copyright John Maddock 2001. 
//  Use, modification and distribution are subject to the 
//  Boost Software License, Version 1.0. (See accompanying file 
//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

//  See http://www.boost.org/libs/config for most recent version.

//  MACRO:         BOOST_NO_AUTO_PTR
//  TITLE:         std::auto_ptr
//  DESCRIPTION:   If the compiler / library supplies non-standard or broken
//                 std::auto_ptr.

#include <memory>

namespace boost_no_auto_ptr{

template <class T>
class my_ptr
{
   T* p;
public:
   my_ptr(std::auto_ptr<T>& r)
   {
      p = r.release();
   }
   my_ptr& operator=(std::auto_ptr<T>& r)
   {
      delete p;
      p = r.release();
      return *this;
   }
   ~my_ptr()
   {
      delete p;
   }
};


int test()
{
   std::auto_ptr<int> ap1(new int);
   my_ptr<int> mp(ap1);
   std::auto_ptr<int> ap2(new int);
   mp = ap2;

   return 0;
}

}