]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/hana/test/experimental/types/drop_front.cpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / hana / test / experimental / types / drop_front.cpp
CommitLineData
b32b8144 1// Copyright Louis Dionne 2013-2017
7c673cae
FG
2// Distributed under the Boost Software License, Version 1.0.
3// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
4
5#include <boost/hana/assert.hpp>
6#include <boost/hana/drop_front.hpp>
7#include <boost/hana/equal.hpp>
8#include <boost/hana/experimental/types.hpp>
9#include <boost/hana/integral_constant.hpp>
10namespace hana = boost::hana;
11
12
13template <int> struct x;
14
15int main() {
16 BOOST_HANA_CONSTANT_CHECK(hana::equal(
17 hana::drop_front(hana::experimental::types<>{}, hana::size_c<0>),
18 hana::experimental::types<>{}
19 ));
20 BOOST_HANA_CONSTANT_CHECK(hana::equal(
21 hana::drop_front(hana::experimental::types<>{}, hana::size_c<1>),
22 hana::experimental::types<>{}
23 ));
24
25 BOOST_HANA_CONSTANT_CHECK(hana::equal(
26 hana::drop_front(hana::experimental::types<x<0>>{}, hana::size_c<0>),
27 hana::experimental::types<x<0>>{}
28 ));
29 BOOST_HANA_CONSTANT_CHECK(hana::equal(
30 hana::drop_front(hana::experimental::types<x<0>>{}, hana::size_c<1>),
31 hana::experimental::types<>{}
32 ));
33 BOOST_HANA_CONSTANT_CHECK(hana::equal(
34 hana::drop_front(hana::experimental::types<x<0>>{}, hana::size_c<2>),
35 hana::experimental::types<>{}
36 ));
37
38 BOOST_HANA_CONSTANT_CHECK(hana::equal(
39 hana::drop_front(hana::experimental::types<x<0>, x<1>>{}, hana::size_c<0>),
40 hana::experimental::types<x<0>, x<1>>{}
41 ));
42 BOOST_HANA_CONSTANT_CHECK(hana::equal(
43 hana::drop_front(hana::experimental::types<x<0>, x<1>>{}, hana::size_c<1>),
44 hana::experimental::types<x<1>>{}
45 ));
46 BOOST_HANA_CONSTANT_CHECK(hana::equal(
47 hana::drop_front(hana::experimental::types<x<0>, x<1>>{}, hana::size_c<2>),
48 hana::experimental::types<>{}
49 ));
50 BOOST_HANA_CONSTANT_CHECK(hana::equal(
51 hana::drop_front(hana::experimental::types<x<0>, x<1>>{}, hana::size_c<3>),
52 hana::experimental::types<>{}
53 ));
54
55 BOOST_HANA_CONSTANT_CHECK(hana::equal(
56 hana::drop_front(hana::experimental::types<x<0>, x<1>, x<2>>{}, hana::size_c<0>),
57 hana::experimental::types<x<0>, x<1>, x<2>>{}
58 ));
59 BOOST_HANA_CONSTANT_CHECK(hana::equal(
60 hana::drop_front(hana::experimental::types<x<0>, x<1>, x<2>>{}, hana::size_c<1>),
61 hana::experimental::types<x<1>, x<2>>{}
62 ));
63 BOOST_HANA_CONSTANT_CHECK(hana::equal(
64 hana::drop_front(hana::experimental::types<x<0>, x<1>, x<2>>{}, hana::size_c<2>),
65 hana::experimental::types<x<2>>{}
66 ));
67 BOOST_HANA_CONSTANT_CHECK(hana::equal(
68 hana::drop_front(hana::experimental::types<x<0>, x<1>, x<2>>{}, hana::size_c<3>),
69 hana::experimental::types<>{}
70 ));
71 BOOST_HANA_CONSTANT_CHECK(hana::equal(
72 hana::drop_front(hana::experimental::types<x<0>, x<1>, x<2>>{}, hana::size_c<4>),
73 hana::experimental::types<>{}
74 ));
75
76 BOOST_HANA_CONSTANT_CHECK(hana::equal(
77 hana::drop_front(hana::experimental::types<x<0>, x<1>, x<2>, x<3>>{}, hana::size_c<0>),
78 hana::experimental::types<x<0>, x<1>, x<2>, x<3>>{}
79 ));
80 BOOST_HANA_CONSTANT_CHECK(hana::equal(
81 hana::drop_front(hana::experimental::types<x<0>, x<1>, x<2>, x<3>>{}, hana::size_c<1>),
82 hana::experimental::types<x<1>, x<2>, x<3>>{}
83 ));
84 BOOST_HANA_CONSTANT_CHECK(hana::equal(
85 hana::drop_front(hana::experimental::types<x<0>, x<1>, x<2>, x<3>>{}, hana::size_c<2>),
86 hana::experimental::types<x<2>, x<3>>{}
87 ));
88 BOOST_HANA_CONSTANT_CHECK(hana::equal(
89 hana::drop_front(hana::experimental::types<x<0>, x<1>, x<2>, x<3>>{}, hana::size_c<3>),
90 hana::experimental::types<x<3>>{}
91 ));
92 BOOST_HANA_CONSTANT_CHECK(hana::equal(
93 hana::drop_front(hana::experimental::types<x<0>, x<1>, x<2>, x<3>>{}, hana::size_c<4>),
94 hana::experimental::types<>{}
95 ));
96 BOOST_HANA_CONSTANT_CHECK(hana::equal(
97 hana::drop_front(hana::experimental::types<x<0>, x<1>, x<2>, x<3>>{}, hana::size_c<5>),
98 hana::experimental::types<>{}
99 ));
100}