]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/hana/test/ext/std/array/iterable.cpp
1 // Copyright Louis Dionne 2013-2016
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)
5 #include <boost/hana/ext/std/array.hpp>
7 #include <boost/hana/assert.hpp>
8 #include <boost/hana/drop_front_exactly.hpp>
9 #include <boost/hana/equal.hpp>
10 #include <boost/hana/front.hpp>
11 #include <boost/hana/integral_constant.hpp>
12 #include <boost/hana/is_empty.hpp>
13 #include <boost/hana/not.hpp>
14 #include <boost/hana/tuple.hpp>
16 #include <laws/base.hpp>
17 #include <laws/iterable.hpp>
20 namespace hana
= boost::hana
;
24 constexpr auto array() { return std::array
<int, sizeof...(i
)>{{i
...}}; }
29 BOOST_HANA_CONSTANT_CHECK(hana::is_empty(array
<>()));
30 BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::is_empty(array
<0>())));
31 BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::is_empty(array
<0, 1>())));
36 BOOST_HANA_CONSTEXPR_CHECK(hana::front(array
<0>()) == 0);
37 BOOST_HANA_CONSTEXPR_CHECK(hana::front(array
<0, 1>()) == 0);
38 BOOST_HANA_CONSTEXPR_CHECK(hana::front(array
<0, 1, 2>()) == 0);
43 BOOST_HANA_CONSTANT_CHECK(hana::equal(
44 hana::drop_front_exactly(array
<0>()),
47 BOOST_HANA_CONSTEXPR_CHECK(hana::equal(
48 hana::drop_front_exactly(array
<0, 1>()),
51 BOOST_HANA_CONSTEXPR_CHECK(hana::equal(
52 hana::drop_front_exactly(array
<0, 1, 2>()),
55 BOOST_HANA_CONSTEXPR_CHECK(hana::equal(
56 hana::drop_front_exactly(array
<0, 1, 2, 3>()),
61 BOOST_HANA_CONSTEXPR_CHECK(hana::equal(
62 hana::drop_front_exactly(array
<0, 1, 2, 3>(), hana::size_c
<2>),
66 BOOST_HANA_CONSTEXPR_CHECK(hana::equal(
67 hana::drop_front_exactly(array
<0, 1, 2, 3>(), hana::size_c
<3>),
73 auto int_arrays
= hana::make_tuple(
79 , array
<0, 1, 2, 3, 4>()
82 hana::test::TestIterable
<hana::ext::std::array_tag
>{int_arrays
};