1 //
2 // get_local_deleter_test2.cpp
3 //
4 // Copyright 2002, 2017 Peter Dimov
5 //
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)
9 //
10 
11 #include <boost/config.hpp>
12 
13 #if defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) || defined( BOOST_NO_CXX11_VARIADIC_TEMPLATES )
14 
main()15 int main()
16 {
17 }
18 
19 #else
20 
21 #include <boost/smart_ptr/local_shared_ptr.hpp>
22 #include <boost/smart_ptr/make_local_shared.hpp>
23 #include <boost/core/lightweight_test.hpp>
24 
25 struct deleter
26 {
27 };
28 
29 struct deleter2;
30 
31 struct X
32 {
33 };
34 
main()35 int main()
36 {
37     {
38         boost::local_shared_ptr<X[]> p = boost::make_local_shared<X[]>( 1 );
39 
40         BOOST_TEST(boost::get_deleter<void>(p) == 0);
41         BOOST_TEST(boost::get_deleter<void const>(p) == 0);
42         BOOST_TEST(boost::get_deleter<int>(p) == 0);
43         BOOST_TEST(boost::get_deleter<int const>(p) == 0);
44         BOOST_TEST(boost::get_deleter<X>(p) == 0);
45         BOOST_TEST(boost::get_deleter<X const>(p) == 0);
46         BOOST_TEST(boost::get_deleter<deleter>(p) == 0);
47         BOOST_TEST(boost::get_deleter<deleter const>(p) == 0);
48         BOOST_TEST(boost::get_deleter<deleter2>(p) == 0);
49         BOOST_TEST(boost::get_deleter<deleter2 const>(p) == 0);
50     }
51 
52     {
53         boost::local_shared_ptr<X[1]> p = boost::make_local_shared<X[1]>();
54 
55         BOOST_TEST(boost::get_deleter<void>(p) == 0);
56         BOOST_TEST(boost::get_deleter<void const>(p) == 0);
57         BOOST_TEST(boost::get_deleter<int>(p) == 0);
58         BOOST_TEST(boost::get_deleter<int const>(p) == 0);
59         BOOST_TEST(boost::get_deleter<X>(p) == 0);
60         BOOST_TEST(boost::get_deleter<X const>(p) == 0);
61         BOOST_TEST(boost::get_deleter<deleter>(p) == 0);
62         BOOST_TEST(boost::get_deleter<deleter const>(p) == 0);
63         BOOST_TEST(boost::get_deleter<deleter2>(p) == 0);
64         BOOST_TEST(boost::get_deleter<deleter2 const>(p) == 0);
65     }
66 
67     return boost::report_errors();
68 }
69 
70 struct deleter2
71 {
72 };
73 
74 #endif
75