1 /* 2 Copyright 2020 Glen Joseph Fernandes 3 (glenjofe@gmail.com) 4 5 Distributed under the Boost Software License, Version 1.0. 6 (http://www.boost.org/LICENSE_1_0.txt) 7 */ 8 #include <boost/core/allocator_access.hpp> 9 #include <boost/core/is_same.hpp> 10 #include <boost/core/lightweight_test_trait.hpp> 11 12 template<class T> 13 struct A1 { 14 typedef T value_type; 15 }; 16 17 #if !defined(BOOST_NO_CXX11_ALLOCATOR) 18 template<class T> 19 struct A2 { 20 typedef T value_type; 21 typedef std::true_type propagate_on_container_copy_assignment; 22 }; 23 #endif 24 main()25int main() 26 { 27 BOOST_TEST_TRAIT_FALSE((boost:: 28 allocator_propagate_on_container_copy_assignment<A1<int> >::type)); 29 #if !defined(BOOST_NO_CXX11_ALLOCATOR) 30 BOOST_TEST_TRAIT_TRUE((boost:: 31 allocator_propagate_on_container_copy_assignment<A2<int> >::type)); 32 #endif 33 return boost::report_errors(); 34 } 35