/* @copyright Louis Dionne 2014 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 using namespace boost::hana; template constexpr auto x = detail::minimal::comparable<>(i); template void test() { constexpr auto iterable = detail::minimal::iterable; BOOST_HANA_STATIC_ASSERT(find(always(true_), iterable()) == nothing); BOOST_HANA_STATIC_ASSERT(find(always(true_), iterable(x<0>)) == just(x<0>)); BOOST_HANA_STATIC_ASSERT(find(always(false_), iterable(x<0>)) == nothing); BOOST_HANA_STATIC_ASSERT(find(id, iterable(true_)) == just(true_)); BOOST_HANA_STATIC_ASSERT(find(id, iterable(true_, false_)) == just(true_)); BOOST_HANA_STATIC_ASSERT(find(id, iterable(false_, true_)) == just(true_)); BOOST_HANA_STATIC_ASSERT(find(id, iterable(false_, false_)) == nothing); } int main() { test(); }