]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/spirit/test/x3/unused_type.cpp
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / libs / spirit / test / x3 / unused_type.cpp
1 /*=============================================================================
2 Copyright (c) 2019 Nikita Kniazev
3
4 Use, modification and distribution is subject to the Boost Software
5 License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
6 http://www.boost.org/LICENSE_1_0.txt)
7 =============================================================================*/
8
9 #include <boost/spirit/home/x3/support/unused.hpp>
10 #include <type_traits>
11 #include <iostream>
12
13 void test_use(boost::spirit::x3::unused_type) {}
14
15 int main()
16 {
17 using boost::spirit::x3::unused;
18 using boost::spirit::x3::unused_type;
19
20 static_assert(std::is_trivial<unused_type>::value, "");
21
22 unused_type unused_mut;
23 static_assert(std::is_same<decltype((unused)), unused_type const&>::value, "");
24 static_assert(std::is_same<decltype((unused_mut)), unused_type&>::value, "");
25 static_assert(std::is_same<decltype(unused = 123), unused_type const&>::value, "");
26 static_assert(std::is_same<decltype(unused = unused), unused_type const&>::value, "");
27 static_assert(std::is_same<decltype(unused = unused_mut), unused_type const&>::value, "");
28 static_assert(std::is_same<decltype(unused_mut = 123), unused_type&>::value, "");
29 static_assert(std::is_same<decltype(unused_mut = unused), unused_type&>::value, "");
30 static_assert(std::is_same<decltype(unused_mut = unused_mut), unused_type&>::value, "");
31
32 test_use(0);
33 test_use(unused);
34 test_use(unused_mut);
35
36 std::cout << unused;
37 std::cout << unused_mut;
38 std::cin >> unused_mut;
39 }