text: //
  // get_pointer_test.cpp
  //
  // Copyright 2014 Peter Dimov
  //
  // Distributed under 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
  //
  
  #include <boost/get_pointer.hpp>
  #include <boost/core/lightweight_test.hpp>
  #include <memory>
  
  struct X
  {
  };
  
  int main()
  {
      using boost::get_pointer;
  
      {
          X * p = new X;
          BOOST_TEST( get_pointer( p ) == p );
  
          delete p;
      }
  
      {
          std::auto_ptr< X > p( new X );
          BOOST_TEST( get_pointer( p ) == p.get() );
      }
  
  #if !defined( BOOST_NO_CXX11_SMART_PTR )
  
      {
          std::unique_ptr< X > p( new X );
          BOOST_TEST( get_pointer( p ) == p.get() );
      }
  
      {
          std::shared_ptr< X > p( new X );
          BOOST_TEST( get_pointer( p ) == p.get() );
      }
  
  #endif
  
      return boost::report_errors();
  }
  