/* @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 using namespace boost::hana; template constexpr auto x = int_; BOOST_HANA_CONSTEXPR_LAMBDA auto is = [](auto x) { return [=](auto y) { return equal(x, y); }; }; int main() { BOOST_HANA_STATIC_ASSERT(find(is(x<1>), set()) == nothing); BOOST_HANA_STATIC_ASSERT(find(is(x<1>), set(x<1>)) == just(x<1>)); BOOST_HANA_STATIC_ASSERT(find(is(x<2>), set(x<1>)) == nothing); BOOST_HANA_STATIC_ASSERT(find(is(x<1>), set(x<1>, x<2>)) == just(x<1>)); BOOST_HANA_STATIC_ASSERT(find(is(x<2>), set(x<1>, x<2>)) == just(x<2>)); BOOST_HANA_STATIC_ASSERT(find(is(x<3>), set(x<1>, x<2>)) == nothing); }