// 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 namespace hana = boost::hana; struct undefined { }; int main() { BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::find_if(std::index_sequence<>{}, hana::equal.to(undefined{})), hana::nothing )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::find_if(std::index_sequence<0>{}, hana::equal.to(std::integral_constant{})), hana::just(std::integral_constant{}) )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::find_if(std::index_sequence<0>{}, hana::equal.to(std::integral_constant{})), hana::nothing )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::find_if(std::index_sequence<0, 1>{}, hana::equal.to(std::integral_constant{})), hana::just(std::integral_constant{}) )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::find_if(std::index_sequence<0, 1>{}, hana::equal.to(std::integral_constant{})), hana::just(std::integral_constant{}) )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::find_if(std::index_sequence<0, 1>{}, hana::equal.to(std::integral_constant{})), hana::nothing )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::find_if(std::index_sequence<0, 1, 2>{}, hana::equal.to(std::integral_constant{})), hana::just(std::integral_constant{}) )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::find_if(std::index_sequence<0, 1, 2>{}, hana::equal.to(std::integral_constant{})), hana::just(std::integral_constant{}) )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::find_if(std::index_sequence<0, 1, 2>{}, hana::equal.to(std::integral_constant{})), hana::just(std::integral_constant{}) )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::find_if(std::index_sequence<0, 1, 2>{}, hana::equal.to(std::integral_constant{})), hana::nothing )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::find_if(std::index_sequence<0, 1, 2, 3>{}, hana::equal.to(std::integral_constant{})), hana::just(std::integral_constant{}) )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::find_if(std::index_sequence<0, 1, 2, 3>{}, hana::equal.to(std::integral_constant{})), hana::just(std::integral_constant{}) )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::find_if(std::index_sequence<0, 1, 2, 3>{}, hana::equal.to(std::integral_constant{})), hana::just(std::integral_constant{}) )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::find_if(std::index_sequence<0, 1, 2, 3>{}, hana::equal.to(std::integral_constant{})), hana::just(std::integral_constant{}) )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::find_if(std::index_sequence<0, 1, 2, 3>{}, hana::equal.to(std::integral_constant{})), hana::nothing )); }