]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/mp11/test/integer_sequence.cpp
2 // Copyright 2015 Peter Dimov.
4 // Distributed under the Boost Software License, Version 1.0.
6 // See accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt
10 #include <boost/mp11/integer_sequence.hpp>
11 #include <boost/core/lightweight_test_trait.hpp>
12 #include <type_traits>
16 using boost::mp11::integer_sequence
;
17 using boost::mp11::make_integer_sequence
;
18 using boost::mp11::index_sequence
;
19 using boost::mp11::make_index_sequence
;
20 using boost::mp11::index_sequence_for
;
22 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_integer_sequence
<int, 0>, integer_sequence
<int>>));
23 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_integer_sequence
<int, 1>, integer_sequence
<int, 0>>));
24 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_integer_sequence
<int, 2>, integer_sequence
<int, 0, 1>>));
25 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_integer_sequence
<int, 3>, integer_sequence
<int, 0, 1, 2>>));
26 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_integer_sequence
<int, 4>, integer_sequence
<int, 0, 1, 2, 3>>));
28 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_integer_sequence
<char, 0>, integer_sequence
<char>>));
29 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_integer_sequence
<char, 1>, integer_sequence
<char, 0>>));
30 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_integer_sequence
<char, 2>, integer_sequence
<char, 0, 1>>));
31 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_integer_sequence
<char, 3>, integer_sequence
<char, 0, 1, 2>>));
32 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_integer_sequence
<char, 4>, integer_sequence
<char, 0, 1, 2, 3>>));
34 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_integer_sequence
<std::size_t, 0>, integer_sequence
<std::size_t>>));
35 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_integer_sequence
<std::size_t, 1>, integer_sequence
<std::size_t, 0>>));
36 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_integer_sequence
<std::size_t, 2>, integer_sequence
<std::size_t, 0, 1>>));
37 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_integer_sequence
<std::size_t, 3>, integer_sequence
<std::size_t, 0, 1, 2>>));
38 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_integer_sequence
<std::size_t, 4>, integer_sequence
<std::size_t, 0, 1, 2, 3>>));
40 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_index_sequence
<0>, integer_sequence
<std::size_t>>));
41 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_index_sequence
<1>, integer_sequence
<std::size_t, 0>>));
42 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_index_sequence
<2>, integer_sequence
<std::size_t, 0, 1>>));
43 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_index_sequence
<3>, integer_sequence
<std::size_t, 0, 1, 2>>));
44 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_index_sequence
<4>, integer_sequence
<std::size_t, 0, 1, 2, 3>>));
46 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_index_sequence
<0>, index_sequence
<>>));
47 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_index_sequence
<1>, index_sequence
<0>>));
48 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_index_sequence
<2>, index_sequence
<0, 1>>));
49 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_index_sequence
<3>, index_sequence
<0, 1, 2>>));
50 BOOST_TEST_TRAIT_TRUE((std::is_same
<make_index_sequence
<4>, index_sequence
<0, 1, 2, 3>>));
52 BOOST_TEST_TRAIT_TRUE((std::is_same
<index_sequence_for
<>, index_sequence
<>>));
53 BOOST_TEST_TRAIT_TRUE((std::is_same
<index_sequence_for
<void>, index_sequence
<0>>));
54 BOOST_TEST_TRAIT_TRUE((std::is_same
<index_sequence_for
<void, void>, index_sequence
<0, 1>>));
55 BOOST_TEST_TRAIT_TRUE((std::is_same
<index_sequence_for
<void, void, void>, index_sequence
<0, 1, 2>>));
56 BOOST_TEST_TRAIT_TRUE((std::is_same
<index_sequence_for
<void, void, void, void>, index_sequence
<0, 1, 2, 3>>));
58 return boost::report_errors();