// 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 struct f { template constexpr X operator()(State, X x) const { return x; } }; struct state { }; template struct x { }; int main() { constexpr auto tuple = boost::hana::make_tuple( <%= (1..input_size).map { |n| "x<#{n}>{}" }.join(', ') %> ); constexpr auto result = boost::hana::fold_left(tuple, state{}, f{}); (void)result; }