/* @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 void test() { constexpr auto traversable = detail::minimal::traversable; constexpr auto applicative = detail::minimal::applicative<>; constexpr auto comparable = detail::minimal::comparable<>; BOOST_HANA_CONSTEXPR_LAMBDA auto f = [=](auto x) { return applicative(std::make_tuple(x)); }; BOOST_HANA_STATIC_ASSERT( traverse>(f, traversable(comparable(1))) == applicative(traversable(std::make_tuple(comparable(1)))) ); } int main() { test(); }