1 // Copyright Louis Dionne 2013-2017 2 // Distributed under the Boost Software License, Version 1.0. 3 // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) 4 5 #include <boost/hana/tuple.hpp> 6 7 #include <type_traits> 8 namespace hana = boost::hana; 9 10 11 // See this bug: https://llvm.org/bugs/show_bug.cgi?id=24173 12 13 template <typename ...Xs> f(Xs &&...xs)14constexpr hana::tuple<std::decay_t<Xs>...> f(Xs&& ...xs) 15 { return hana::tuple<std::decay_t<Xs>...>{static_cast<Xs&&>(xs)...}; } 16 main()17int main() { 18 f(f(f(f(f(f(f(f(f(f(f(f(1)))))))))))); 19 } 20