/* @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 using namespace boost::hana; template void test() { constexpr auto foldable = detail::minimal::foldable; BOOST_HANA_STATIC_ASSERT(sum(foldable()) == int_<0>); BOOST_HANA_STATIC_ASSERT(sum(foldable(int_<1>)) == int_<1>); BOOST_HANA_STATIC_ASSERT(sum(foldable(int_<1>, int_<2>)) == int_<1 + 2>); BOOST_HANA_STATIC_ASSERT(sum(foldable(int_<1>, int_<2>, int_<3>)) == int_<1 + 2 + 3>); BOOST_HANA_STATIC_ASSERT(sum(foldable(int_<1>, int_<2>, int_<3>, int_<4>)) == int_<1 + 2 + 3 + 4>); BOOST_HANA_STATIC_ASSERT(sum(foldable(1)) == 1); BOOST_HANA_STATIC_ASSERT(sum(foldable(1, 2)) == 1 + 2); BOOST_HANA_STATIC_ASSERT(sum(foldable(1, 2, 3)) == 1 + 2 + 3); BOOST_HANA_STATIC_ASSERT(sum(foldable(1, 2, 3, 4)) == 1 + 2 + 3 + 4); } int main() { test(); }