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/fold_left.hpp> 6 #include <boost/hana/tuple.hpp> 7 8 9 struct f { 10 template <typename State, typename X> operator ()f11 constexpr X operator()(State, X x) const { return x; } 12 }; 13 14 struct state { }; 15 16 template <int i> 17 struct x { }; 18 main()19int main() { 20 constexpr auto tuple = boost::hana::make_tuple( 21 <%= (1..input_size).map { |n| "x<#{n}>{}" }.join(', ') %> 22 ); 23 constexpr auto result = boost::hana::fold_left(tuple, state{}, f{}); 24 (void)result; 25 } 26