/* @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 using namespace boost::hana; template constexpr auto key = detail::minimal::comparable<>(i); template constexpr auto value = detail::minimal::comparable<>(i + 100); template BOOST_HANA_CONSTEXPR_LAMBDA auto p = detail::minimal::product<>(key, value); int main() { BOOST_HANA_STATIC_ASSERT(keys(map()) == list()); BOOST_HANA_STATIC_ASSERT(keys(map(p<1, 1>)) == list(key<1>)); BOOST_HANA_STATIC_ASSERT(keys(map(p<1, 1>, p<2, 2>)) == list(key<1>, key<2>)); BOOST_HANA_STATIC_ASSERT(keys(map(p<1, 1>, p<2, 2>, p<3, 3>)) == list(key<1>, key<2>, key<3>)); }