]>
Commit | Line | Data |
---|---|---|
92f5a8d4 TL |
1 | |
2 | // (C) Copyright John Maddock 2000. | |
3 | // (C) Copyright Peter Dimov 2018. | |
4 | // Use, modification and distribution are subject to the | |
5 | // Boost Software License, Version 1.0. (See accompanying file | |
6 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
7 | ||
8 | #ifdef TEST_STD | |
9 | # include <type_traits> | |
10 | #else | |
11 | # include <boost/type_traits/is_noncopyable.hpp> | |
12 | #endif | |
13 | #include <boost/core/noncopyable.hpp> | |
14 | #include "test.hpp" | |
15 | #include "check_integral_constant.hpp" | |
16 | ||
17 | struct X | |
18 | { | |
19 | }; | |
20 | ||
21 | class Y: private boost::noncopyable | |
22 | { | |
23 | }; | |
24 | ||
25 | class Z: private Y | |
26 | { | |
27 | }; | |
28 | ||
29 | TT_TEST_BEGIN(is_noncopyable) | |
30 | ||
31 | BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<void>::value, false); | |
32 | BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<const void>::value, false); | |
33 | ||
34 | BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<int>::value, false); | |
35 | BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<const int>::value, false); | |
36 | ||
37 | BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<X>::value, false); | |
38 | BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<const X>::value, false); | |
39 | ||
40 | BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<Y>::value, true); | |
41 | BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<const Y>::value, true); | |
42 | ||
43 | BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<Z>::value, true); | |
44 | BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<const Z>::value, true); | |
45 | ||
46 | TT_TEST_END |