]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/hana/test/detail/index_if.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/detail/index_if.hpp>
7 #include <boost/hana/bool.hpp>
8 namespace hana
= boost::hana
;
17 constexpr auto operator()(x
<i
> const&) const
18 { return hana::bool_c
<n
== i
>; }
23 constexpr auto operator()(T
const&) const
24 { return hana::false_c
; }
31 using Pack
= hana::detail::pack
<>;
32 static_assert(hana::detail::index_if
<Undefined
, Pack
>::value
== 0, "");
36 using Pack
= hana::detail::pack
<x
<0>>;
37 static_assert(hana::detail::index_if
<Find
<0>, Pack
>::value
== 0, "");
38 static_assert(hana::detail::index_if
<NotFound
, Pack
>::value
== 1, "");
42 using Pack
= hana::detail::pack
<x
<0>, x
<1>>;
43 static_assert(hana::detail::index_if
<Find
<0>, Pack
>::value
== 0, "");
44 static_assert(hana::detail::index_if
<Find
<1>, Pack
>::value
== 1, "");
45 static_assert(hana::detail::index_if
<NotFound
, Pack
>::value
== 2, "");
49 using Pack
= hana::detail::pack
<x
<0>, x
<1>, x
<2>>;
50 static_assert(hana::detail::index_if
<Find
<0>, Pack
>::value
== 0, "");
51 static_assert(hana::detail::index_if
<Find
<1>, Pack
>::value
== 1, "");
52 static_assert(hana::detail::index_if
<Find
<2>, Pack
>::value
== 2, "");
53 static_assert(hana::detail::index_if
<NotFound
, Pack
>::value
== 3, "");
57 using Pack
= hana::detail::pack
<x
<0>, x
<1>, x
<2>, x
<3>>;
58 static_assert(hana::detail::index_if
<Find
<0>, Pack
>::value
== 0, "");
59 static_assert(hana::detail::index_if
<Find
<1>, Pack
>::value
== 1, "");
60 static_assert(hana::detail::index_if
<Find
<2>, Pack
>::value
== 2, "");
61 static_assert(hana::detail::index_if
<Find
<3>, Pack
>::value
== 3, "");
62 static_assert(hana::detail::index_if
<NotFound
, Pack
>::value
== 4, "");
66 using Pack
= hana::detail::pack
<x
<0>, x
<1>, x
<2>, x
<3>, x
<4>>;
67 static_assert(hana::detail::index_if
<Find
<0>, Pack
>::value
== 0, "");
68 static_assert(hana::detail::index_if
<Find
<1>, Pack
>::value
== 1, "");
69 static_assert(hana::detail::index_if
<Find
<2>, Pack
>::value
== 2, "");
70 static_assert(hana::detail::index_if
<Find
<3>, Pack
>::value
== 3, "");
71 static_assert(hana::detail::index_if
<Find
<4>, Pack
>::value
== 4, "");
72 static_assert(hana::detail::index_if
<NotFound
, Pack
>::value
== 5, "");