]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/type_traits/test/remove_const_test.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / type_traits / test / remove_const_test.cpp
1
2 // (C) Copyright John Maddock 2000.
3 // Use, modification and distribution are subject to the
4 // Boost Software License, Version 1.0. (See accompanying file
5 // LICENSE_1_0.txt or copy at http://www.tt.org/LICENSE_1_0.txt)
6
7 #include "test.hpp"
8 #include "check_type.hpp"
9 #ifdef TEST_STD
10 # include <type_traits>
11 #else
12 # include <boost/type_traits/remove_const.hpp>
13 #endif
14
15 BOOST_DECL_TRANSFORM_TEST3(remove_const_test_1, ::tt::remove_const, const)
16 BOOST_DECL_TRANSFORM_TEST(remove_const_test_2, ::tt::remove_const, volatile, volatile)
17 BOOST_DECL_TRANSFORM_TEST(remove_const_test_3, ::tt::remove_const, const volatile, volatile)
18 BOOST_DECL_TRANSFORM_TEST0(remove_const_test_4, ::tt::remove_const)
19 BOOST_DECL_TRANSFORM_TEST(remove_const_test_6, ::tt::remove_const, *const, *)
20 BOOST_DECL_TRANSFORM_TEST(remove_const_test_7, ::tt::remove_const, *volatile, *volatile)
21 BOOST_DECL_TRANSFORM_TEST(remove_const_test_8, ::tt::remove_const, *const volatile, *volatile)
22 BOOST_DECL_TRANSFORM_TEST(remove_const_test_9, ::tt::remove_const, *, *)
23 BOOST_DECL_TRANSFORM_TEST(remove_const_test_11, ::tt::remove_const, volatile*, volatile*)
24 BOOST_DECL_TRANSFORM_TEST(remove_const_test_12, ::tt::remove_const, const[2], [2])
25 BOOST_DECL_TRANSFORM_TEST(remove_const_test_13, ::tt::remove_const, volatile[2], volatile[2])
26 BOOST_DECL_TRANSFORM_TEST(remove_const_test_14, ::tt::remove_const, const volatile[2], volatile[2])
27 BOOST_DECL_TRANSFORM_TEST(remove_const_test_15, ::tt::remove_const, [2], [2])
28 BOOST_DECL_TRANSFORM_TEST(remove_const_test_16, ::tt::remove_const, const*, const*)
29 BOOST_DECL_TRANSFORM_TEST(remove_const_test_17, ::tt::remove_const, const*const, const*)
30 BOOST_DECL_TRANSFORM_TEST(remove_const_test_18, ::tt::remove_const, (*), (*))
31 BOOST_DECL_TRANSFORM_TEST(remove_const_test_19, ::tt::remove_const, (*const), (*))
32
33 struct S
34 {
35 template<typename T>
36 typename ::tt::remove_const<T>::type *operator=(T const &) const { return 0; }
37 };
38
39 void bar() {}
40
41 void bug_case_7317()
42 {
43 S s;
44 s = bar;
45 (void)s;
46 }
47
48 TT_TEST_BEGIN(remove_const)
49
50 BOOST_CHECK_TYPE(int, int);
51
52 remove_const_test_1();
53 remove_const_test_2();
54 remove_const_test_3();
55 remove_const_test_4();
56 remove_const_test_6();
57 remove_const_test_7();
58 remove_const_test_8();
59 remove_const_test_9();
60 remove_const_test_11();
61 remove_const_test_12();
62 remove_const_test_13();
63 remove_const_test_14();
64 remove_const_test_15();
65 remove_const_test_16();
66 remove_const_test_17();
67 remove_const_test_18();
68 remove_const_test_19();
69
70 TT_TEST_END
71
72
73
74
75
76
77
78