]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/type_traits/test/is_noncopyable_test.cpp
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / libs / type_traits / test / is_noncopyable_test.cpp
CommitLineData
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
17struct X
18{
19};
20
21class Y: private boost::noncopyable
22{
23};
24
25class Z: private Y
26{
27};
28
29TT_TEST_BEGIN(is_noncopyable)
30
31BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<void>::value, false);
32BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<const void>::value, false);
33
34BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<int>::value, false);
35BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<const int>::value, false);
36
37BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<X>::value, false);
38BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<const X>::value, false);
39
40BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<Y>::value, true);
41BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<const Y>::value, true);
42
43BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<Z>::value, true);
44BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_noncopyable<const Z>::value, true);
45
46TT_TEST_END