/* @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; using namespace literals; int main() { //! [main] BOOST_HANA_CONSTEXPR_LAMBDA auto numbers = integer_list; BOOST_HANA_CONSTEXPR_LAMBDA auto negatives = integer_list; BOOST_HANA_CONSTEXPR_LAMBDA auto keep_negatives = [](auto n, auto acc) { return if_(n < 0_c, cons(n, acc), acc); }; BOOST_HANA_STATIC_ASSERT(foldr(keep_negatives, integer_list, numbers) == negatives); //! [main] }