// Copyright Louis Dionne 2013-2017 // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) #include #include #include #include #include #include #include #include #include #include #include namespace hana = boost::hana; using namespace hana::literals; // Slice a contiguous range constexpr auto xs = hana::make_tuple(0, '1', 2.2, 3_c, hana::type_c); static_assert( hana::slice(xs, hana::tuple_c) == hana::make_tuple('1', 2.2, 3_c) , ""); // A more complex example with a non-contiguous range constexpr auto letters = hana::to_tuple(hana::range_c); constexpr auto indices = hana::to_tuple(hana::make_range(hana::size_c<0>, hana::length(letters))); auto even_indices = hana::filter(indices, [](auto n) { return n % hana::size_c<2> == hana::size_c<0>; }); BOOST_HANA_CONSTANT_CHECK( hana::slice(letters, even_indices) == hana::tuple_c ); int main() { }