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