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 <% if input_size > 10 %> 6 #define FUSION_MAX_LIST_SIZE <%= ((input_size + 9) / 10) * 10 %> 7 <% end %> 8 9 #include <boost/fusion/include/as_list.hpp> 10 #include <boost/fusion/include/make_list.hpp> 11 #include <boost/fusion/include/transform.hpp> 12 namespace fusion = boost::fusion; 13 14 15 struct f { 16 template <typename X> 17 constexpr X operator()(X x) const { return x; } 18 }; 19 20 template <int i> 21 struct x { }; 22 23 int main() { 24 auto xs = fusion::make_list( 25 <%= (1..input_size).map { |n| "x<#{n}>{}" }.join(', ') %> 26 ); 27 28 auto result = fusion::as_list(fusion::transform(xs, f{})); 29 (void)result; 30 } 31