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()15int 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()35int 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