// Copyright Louis Dionne 2013-2017 // 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 namespace hana = boost::hana; template struct F { struct type; }; struct x1; struct x2; struct x3; struct x4; int main() { // transform with tuple_t and a metafunction BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::transform(hana::tuple_t<>, hana::metafunction), hana::tuple_t<> )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::transform(hana::tuple_t, hana::metafunction), hana::tuple_t::type> )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::transform(hana::tuple_t, hana::metafunction), hana::tuple_t::type, F::type> )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::transform(hana::tuple_t, hana::metafunction), hana::tuple_t::type, F::type, F::type> )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::transform(hana::tuple_t, hana::metafunction), hana::tuple_t::type, F::type, F::type, F::type> )); BOOST_HANA_CONSTANT_CHECK(hana::equal( hana::transform(hana::tuple_t, hana::template_), hana::tuple_t, F, F, F> )); }