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()25 int 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