]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/smart_ptr/test/sp_nullptr_test.cpp
4 // Copyright 2012 Peter Dimov
6 // Distributed under the Boost Software License, Version 1.0. (See
7 // accompanying file LICENSE_1_0.txt or copy at
8 // http://www.boost.org/LICENSE_1_0.txt)
11 #include <boost/shared_ptr.hpp>
12 #include <boost/smart_ptr/detail/sp_nullptr_t.hpp>
13 #include <boost/detail/lightweight_test.hpp>
17 #if !defined( BOOST_NO_CXX11_NULLPTR )
36 X
& operator=( X
const & );
41 void f( boost::detail::sp_nullptr_t
)
48 boost::shared_ptr
<void> p( nullptr );
50 BOOST_TEST( p
.get() == 0 );
51 BOOST_TEST( p
.use_count() == 0 );
53 BOOST_TEST( p
== nullptr );
54 BOOST_TEST( nullptr == p
);
55 BOOST_TEST( !( p
!= nullptr ) );
56 BOOST_TEST( !( nullptr != p
) );
60 boost::shared_ptr
<int> p( nullptr, f
);
62 BOOST_TEST( p
.get() == 0 );
63 BOOST_TEST( p
.use_count() == 1 );
65 BOOST_TEST( p
== nullptr );
66 BOOST_TEST( nullptr == p
);
67 BOOST_TEST( !( p
!= nullptr ) );
68 BOOST_TEST( !( nullptr != p
) );
72 boost::shared_ptr
<int> p( nullptr, f
, std::allocator
<int>() );
74 BOOST_TEST( p
.get() == 0 );
75 BOOST_TEST( p
.use_count() == 1 );
77 BOOST_TEST( p
== nullptr );
78 BOOST_TEST( nullptr == p
);
79 BOOST_TEST( !( p
!= nullptr ) );
80 BOOST_TEST( !( nullptr != p
) );
84 boost::shared_ptr
<int> p( new int );
86 BOOST_TEST( p
.get() != 0 );
87 BOOST_TEST( p
.use_count() == 1 );
89 BOOST_TEST( p
!= nullptr );
90 BOOST_TEST( nullptr != p
);
91 BOOST_TEST( !( p
== nullptr ) );
92 BOOST_TEST( !( nullptr == p
) );
96 BOOST_TEST( p
.get() == 0 );
97 BOOST_TEST( p
.use_count() == 0 );
99 BOOST_TEST( p
== nullptr );
100 BOOST_TEST( nullptr == p
);
101 BOOST_TEST( !( p
!= nullptr ) );
102 BOOST_TEST( !( nullptr != p
) );
106 BOOST_TEST( X::instances
== 0 );
108 boost::shared_ptr
<X
> p( new X
);
109 BOOST_TEST( X::instances
== 1 );
111 BOOST_TEST( p
.get() != 0 );
112 BOOST_TEST( p
.use_count() == 1 );
114 BOOST_TEST( p
!= nullptr );
115 BOOST_TEST( nullptr != p
);
116 BOOST_TEST( !( p
== nullptr ) );
117 BOOST_TEST( !( nullptr == p
) );
120 BOOST_TEST( X::instances
== 0 );
122 BOOST_TEST( p
.get() == 0 );
123 BOOST_TEST( p
.use_count() == 0 );
125 BOOST_TEST( p
== nullptr );
126 BOOST_TEST( nullptr == p
);
127 BOOST_TEST( !( p
!= nullptr ) );
128 BOOST_TEST( !( nullptr != p
) );
131 return boost::report_errors();