]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/smart_ptr/test/auto_ptr_rv_test.cpp
1 #include <boost/config.hpp>
4 // auto_ptr_rv_test.cpp
6 // Copyright (c) 2006 Peter Dimov
8 // Distributed under the Boost Software License, Version 1.0.
9 // See accompanying file LICENSE_1_0.txt or copy at
10 // http://www.boost.org/LICENSE_1_0.txt
13 #if defined( BOOST_NO_AUTO_PTR )
21 #include <boost/shared_ptr.hpp>
22 #include <boost/detail/lightweight_test.hpp>
27 static long instances
;
39 static std::auto_ptr
<X
> create()
41 return std::auto_ptr
<X
>( new X
);
47 X
& operator=( X
const & );
50 long X::instances
= 0;
54 BOOST_TEST( X::instances
== 0 );
57 boost::shared_ptr
<X
> p( X::create() );
58 BOOST_TEST( X::instances
== 1 );
61 BOOST_TEST( X::instances
== 1 );
64 BOOST_TEST( X::instances
== 0 );
67 BOOST_TEST( X::instances
== 1 );
70 BOOST_TEST( X::instances
== 0 );
73 boost::shared_ptr
<X
const> p( X::create() );
74 BOOST_TEST( X::instances
== 1 );
77 BOOST_TEST( X::instances
== 1 );
80 BOOST_TEST( X::instances
== 0 );
83 BOOST_TEST( X::instances
== 1 );
86 BOOST_TEST( X::instances
== 0 );
89 boost::shared_ptr
<void> p( X::create() );
90 BOOST_TEST( X::instances
== 1 );
93 BOOST_TEST( X::instances
== 1 );
96 BOOST_TEST( X::instances
== 0 );
99 BOOST_TEST( X::instances
== 1 );
102 BOOST_TEST( X::instances
== 0 );
105 boost::shared_ptr
<void const> p( X::create() );
106 BOOST_TEST( X::instances
== 1 );
109 BOOST_TEST( X::instances
== 1 );
112 BOOST_TEST( X::instances
== 0 );
115 BOOST_TEST( X::instances
== 1 );
118 BOOST_TEST( X::instances
== 0 );
120 return boost::report_errors();
123 #endif // #if defined( BOOST_NO_AUTO_PTR )