]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/mp11/test/mp_append.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/core/lightweight_test_trait.hpp>
11 #include <boost/mp11/list.hpp>
12 #include <type_traits>
25 using boost::mp11::mp_list
;
26 using boost::mp11::mp_append
;
28 using L1
= mp_list
<char[1], char[1]>;
29 using L2
= mp_list
<char[2], char[2]>;
30 using L3
= mp_list
<char[3], char[3]>;
31 using L4
= mp_list
<char[4], char[4]>;
33 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<>, mp_list
<>>));
34 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<L1
>, mp_list
<char[1], char[1]>>));
35 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<L1
, L2
>, mp_list
<char[1], char[1], char[2], char[2]>>));
36 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<L1
, L2
, L3
>, mp_list
<char[1], char[1], char[2], char[2], char[3], char[3]>>));
37 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<L1
, L2
, L3
, L4
>, mp_list
<char[1], char[1], char[2], char[2], char[3], char[3], char[4], char[4]>>));
41 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::tuple
<>>, std::tuple
<>>));
42 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::tuple
<>, std::tuple
<X1
>>, std::tuple
<X1
>>));
43 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::tuple
<>, std::tuple
<X1
>, std::tuple
<X2
>>, std::tuple
<X1
, X2
>>));
44 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::tuple
<>, std::tuple
<X1
>, std::tuple
<X2
>, std::tuple
<X3
>>, std::tuple
<X1
, X2
, X3
>>));
45 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::tuple
<>, std::tuple
<X1
>, std::tuple
<X2
>, std::tuple
<X3
>, std::tuple
<X4
>>, std::tuple
<X1
, X2
, X3
, X4
>>));
46 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::tuple
<>, std::tuple
<X1
>, std::tuple
<X2
>, std::tuple
<X3
>, std::tuple
<X4
>, std::tuple
<X5
>>, std::tuple
<X1
, X2
, X3
, X4
, X5
>>));
47 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::tuple
<>, std::tuple
<X1
>, std::tuple
<X2
>, std::tuple
<X3
>, std::tuple
<X4
>, std::tuple
<X5
>, std::tuple
<X6
>>, std::tuple
<X1
, X2
, X3
, X4
, X5
, X6
>>));
51 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::tuple
<>, mp_list
<>>, std::tuple
<>>));
52 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::tuple
<>, mp_list
<X1
>>, std::tuple
<X1
>>));
53 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::tuple
<>, mp_list
<X1
>, std::tuple
<X2
>>, std::tuple
<X1
, X2
>>));
54 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::tuple
<>, mp_list
<X1
>, std::tuple
<X2
>, mp_list
<X3
>>, std::tuple
<X1
, X2
, X3
>>));
55 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::tuple
<>, mp_list
<X1
>, std::tuple
<X2
>, mp_list
<X3
>, std::tuple
<X4
>>, std::tuple
<X1
, X2
, X3
, X4
>>));
56 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::tuple
<>, mp_list
<X1
>, std::tuple
<X2
>, mp_list
<X3
>, std::tuple
<X4
>, mp_list
<X5
>>, std::tuple
<X1
, X2
, X3
, X4
, X5
>>));
57 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::tuple
<>, mp_list
<X1
>, std::tuple
<X2
>, mp_list
<X3
>, std::tuple
<X4
>, mp_list
<X5
>, std::tuple
<X6
>>, std::tuple
<X1
, X2
, X3
, X4
, X5
, X6
>>));
61 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::tuple
<>, std::pair
<X1
, X2
>>, std::tuple
<X1
, X2
>>));
62 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::tuple
<>, std::pair
<X1
, X2
>, std::pair
<X3
, X4
>>, std::tuple
<X1
, X2
, X3
, X4
>>));
63 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::tuple
<>, std::pair
<X1
, X2
>, std::pair
<X3
, X4
>, std::pair
<X5
, X6
>>, std::tuple
<X1
, X2
, X3
, X4
, X5
, X6
>>));
67 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::pair
<X1
, X2
>>, std::pair
<X1
, X2
>>));
68 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::pair
<X1
, X2
>, mp_list
<>>, std::pair
<X1
, X2
>>));
69 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::pair
<X1
, X2
>, mp_list
<>, mp_list
<>>, std::pair
<X1
, X2
>>));
70 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::pair
<X1
, X2
>, mp_list
<>, mp_list
<>, mp_list
<>>, std::pair
<X1
, X2
>>));
71 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_append
<std::pair
<X1
, X2
>, mp_list
<>, mp_list
<>, mp_list
<>, mp_list
<>>, std::pair
<X1
, X2
>>));
75 return boost::report_errors();