]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/mp11/test/mp_starts_with.cpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / libs / mp11 / test / mp_starts_with.cpp
1 // Copyright 2018 Glen Joseph Fernandes
2 // (glenjofe@gmail.com)
3 //
4 // Distributed under the Boost Software License, Version 1.0.
5 //
6 // See accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt
8
9 #include <boost/mp11/algorithm.hpp>
10 #include <boost/mp11/list.hpp>
11 #include <boost/mp11/integral.hpp>
12 #include <boost/core/lightweight_test_trait.hpp>
13 #include <type_traits>
14 #include <tuple>
15 #include <utility>
16
17 int main()
18 {
19 using boost::mp11::mp_list;
20 using boost::mp11::mp_starts_with;
21 using boost::mp11::mp_true;
22 using boost::mp11::mp_false;
23 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<mp_list<>,
24 mp_list<> >, mp_true>));
25 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<mp_list<>,
26 mp_list<int> >, mp_false>));
27 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<mp_list<int>,
28 mp_list<> >, mp_true>));
29 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<mp_list<>,
30 std::tuple<int> >, mp_false>));
31 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<std::tuple<int>,
32 mp_list<> >, mp_true>));
33 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<mp_list<int>,
34 mp_list<int> >, mp_true>));
35 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<mp_list<int>,
36 mp_list<char> >, mp_false>));
37 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<std::tuple<int>,
38 mp_list<int> >, mp_true>));
39 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<mp_list<int>,
40 std::tuple<char> >, mp_false>));
41 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<mp_list<int, void>,
42 mp_list<int> >, mp_true>));
43 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<mp_list<int, void>,
44 mp_list<char> >, mp_false>));
45 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<mp_list<int>,
46 mp_list<int, void> >, mp_false>));
47 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<std::pair<int, char>,
48 mp_list<int> >, mp_true>));
49 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<mp_list<int>,
50 std::pair<int, char> >, mp_false>));
51 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<mp_list<int, void>,
52 mp_list<int, void> >, mp_true>));
53 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<mp_list<int, void>,
54 mp_list<int, int> >, mp_false>));
55 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<std::tuple<int, char>,
56 mp_list<int, char> >, mp_true>));
57 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<mp_list<int, char>,
58 std::tuple<int, int> >, mp_false>));
59 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<mp_list<int, void, int>,
60 mp_list<int, void> >, mp_true>));
61 BOOST_TEST_TRAIT_TRUE((std::is_same<mp_starts_with<mp_list<int, void, int>,
62 mp_list<int, int> >, mp_false>));
63 return boost::report_errors();
64 }