]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/mp11/test/mp_replace.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/algorithm.hpp>
11 #include <boost/mp11/list.hpp>
12 #include <boost/core/lightweight_test_trait.hpp>
13 #include <type_traits>
23 using boost::mp11::mp_list
;
24 using boost::mp11::mp_replace
;
29 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_replace
<L1
, void, int[]>, L1
>));
31 using L2
= mp_list
<X1
, X2
, X3
, X2
, X3
, X3
>;
33 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_replace
<L2
, void, int[]>, L2
>));
34 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_replace
<L2
, X1
, int[]>, mp_list
<int[], X2
, X3
, X2
, X3
, X3
>>));
35 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_replace
<L2
, X2
, int[]>, mp_list
<X1
, int[], X3
, int[], X3
, X3
>>));
36 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_replace
<L2
, X3
, int[]>, mp_list
<X1
, X2
, int[], X2
, int[], int[]>>));
40 using L1
= std::tuple
<>;
42 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_replace
<L1
, void, int[]>, L1
>));
44 using L2
= std::tuple
<X1
, X2
, X3
, X2
, X3
, X3
>;
46 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_replace
<L2
, void, int[]>, L2
>));
47 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_replace
<L2
, X1
, int[]>, std::tuple
<int[], X2
, X3
, X2
, X3
, X3
>>));
48 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_replace
<L2
, X2
, int[]>, std::tuple
<X1
, int[], X3
, int[], X3
, X3
>>));
49 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_replace
<L2
, X3
, int[]>, std::tuple
<X1
, X2
, int[], X2
, int[], int[]>>));
53 using L2
= std::pair
<X1
, X2
>;
55 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_replace
<L2
, void, int[]>, L2
>));
56 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_replace
<L2
, X1
, int[]>, std::pair
<int[], X2
>>));
57 BOOST_TEST_TRAIT_TRUE((std::is_same
<mp_replace
<L2
, X2
, int[]>, std::pair
<X1
, int[]>>));
60 return boost::report_errors();