// Copyright Louis Dionne 2013-2016 // 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 namespace hana = boost::hana; constexpr hana::detail::create make_tuple{}; constexpr hana::detail::create make_pair{}; template struct empty { }; template struct single_holder { T x; }; template struct identity { using type = T; }; template using identity_t = typename identity::type; int main() { static_assert(make_tuple(1, '2', 3.3) == std::make_tuple(1, '2', 3.3), ""); static_assert(make_pair(1, '2') == std::make_pair(1, '2'), ""); // should work hana::detail::create{}(); hana::detail::create{}(1); hana::detail::create{}([]{}); hana::detail::create{}(1); // Clang < 3.7.0 fails this test #if !defined(BOOST_HANA_CONFIG_CLANG) || \ BOOST_HANA_CONFIG_CLANG >= BOOST_HANA_CONFIG_VERSION(3, 7, 0) hana::detail::create{}([]{}); #endif }