Chris@16
|
1 /*==============================================================================
|
Chris@16
|
2 Copyright (c) 2001-2010 Joel de Guzman
|
Chris@16
|
3 Copyright (c) 2004 Daniel Wallin
|
Chris@16
|
4 Copyright (c) 2010 Thomas Heller
|
Chris@16
|
5
|
Chris@16
|
6 Distributed under the Boost Software License, Version 1.0. (See accompanying
|
Chris@16
|
7 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
8 ==============================================================================*/
|
Chris@16
|
9 namespace boost { namespace phoenix { namespace tag { struct lambda_actor {}; template <typename Ostream> inline Ostream &operator<<( Ostream & os , lambda_actor) { os << "lambda_actor"; return os; } } namespace expression { template <typename A0 , typename A1 , typename A2> struct lambda_actor : boost::phoenix::expr< :: boost :: phoenix :: tag:: lambda_actor , A0 , A1 , A2> {}; } namespace rule { struct lambda_actor : expression:: lambda_actor <proto::terminal<proto::_>, proto::terminal<proto::_>, meta_grammar> {}; } namespace functional { typedef boost::proto::functional::make_expr< tag:: lambda_actor > make_lambda_actor; } namespace result_of { template <typename A0 , typename A1 , typename A2> struct make_lambda_actor : boost::result_of< functional:: make_lambda_actor(A0 , A1 , A2) > {}; } template <typename A0 , typename A1 , typename A2> inline typename result_of::make_lambda_actor< A0 , A1 , A2 >::type const make_lambda_actor( A0 const& a0 , A1 const& a1 , A2 const& a2 ) { return functional::make_lambda_actor()( a0 , a1 , a2 ); } } } namespace boost { namespace phoenix { template <typename Dummy> struct meta_grammar::case_< :: boost :: phoenix :: tag:: lambda_actor , Dummy > : enable_rule< :: boost :: phoenix :: rule:: lambda_actor , Dummy > {}; } }
|
Chris@16
|
10 namespace boost { namespace phoenix { namespace tag { struct lambda {}; template <typename Ostream> inline Ostream &operator<<( Ostream & os , lambda) { os << "lambda"; return os; } } namespace expression { template <typename A0 , typename A1 , typename A2 , typename A3> struct lambda : boost::phoenix::expr< :: boost :: phoenix :: tag:: lambda , A0 , A1 , A2 , A3> {}; } namespace rule { struct lambda : expression:: lambda <proto::terminal<proto::_>, proto::terminal<proto::_>, proto::terminal<proto::_>, meta_grammar> {}; } namespace functional { typedef boost::proto::functional::make_expr< tag:: lambda > make_lambda; } namespace result_of { template <typename A0 , typename A1 , typename A2 , typename A3> struct make_lambda : boost::result_of< functional:: make_lambda(A0 , A1 , A2 , A3) > {}; } template <typename A0 , typename A1 , typename A2 , typename A3> inline typename result_of::make_lambda< A0 , A1 , A2 , A3 >::type const make_lambda( A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 ) { return functional::make_lambda()( a0 , a1 , a2 , a3 ); } } } namespace boost { namespace phoenix { template <typename Dummy> struct meta_grammar::case_< :: boost :: phoenix :: tag:: lambda , Dummy > : enable_rule< :: boost :: phoenix :: rule:: lambda , Dummy > {}; } }
|
Chris@16
|
11 namespace boost { namespace phoenix
|
Chris@16
|
12 {
|
Chris@16
|
13 struct lambda_eval
|
Chris@16
|
14 {
|
Chris@16
|
15 BOOST_PROTO_CALLABLE()
|
Chris@16
|
16 template <typename Sig>
|
Chris@16
|
17 struct result;
|
Chris@16
|
18 template <
|
Chris@16
|
19 typename This
|
Chris@16
|
20 , typename OuterEnv
|
Chris@16
|
21 , typename Locals
|
Chris@16
|
22 , typename Map
|
Chris@16
|
23 , typename Lambda
|
Chris@16
|
24 , typename Context
|
Chris@16
|
25 >
|
Chris@16
|
26 struct result<This(OuterEnv, Locals, Map, Lambda, Context)>
|
Chris@16
|
27 {
|
Chris@16
|
28 typedef
|
Chris@16
|
29 typename proto::detail::uncvref<
|
Chris@16
|
30 typename proto::result_of::value<
|
Chris@16
|
31 OuterEnv
|
Chris@16
|
32 >::type
|
Chris@16
|
33 >::type
|
Chris@16
|
34 outer_env_type;
|
Chris@16
|
35 typedef
|
Chris@16
|
36 typename proto::detail::uncvref<
|
Chris@16
|
37 typename proto::result_of::value<
|
Chris@16
|
38 Locals
|
Chris@16
|
39 >::type
|
Chris@16
|
40 >::type
|
Chris@16
|
41 locals_type;
|
Chris@16
|
42 typedef
|
Chris@16
|
43 typename proto::detail::uncvref<
|
Chris@16
|
44 typename proto::result_of::value<
|
Chris@16
|
45 Map
|
Chris@16
|
46 >::type
|
Chris@16
|
47 >::type
|
Chris@16
|
48 map_type;
|
Chris@16
|
49
|
Chris@16
|
50 typedef
|
Chris@16
|
51 typename proto::detail::uncvref<
|
Chris@16
|
52 typename result_of::env<Context>::type
|
Chris@16
|
53 >::type
|
Chris@16
|
54 env_type;
|
Chris@101
|
55 typedef
|
Chris@101
|
56 typename result_of::eval<
|
Chris@101
|
57 Lambda
|
Chris@101
|
58 , typename result_of::context<
|
Chris@101
|
59 scoped_environment<
|
Chris@101
|
60 env_type
|
Chris@101
|
61 , outer_env_type
|
Chris@101
|
62 , locals_type
|
Chris@101
|
63 , map_type
|
Chris@101
|
64 >
|
Chris@101
|
65 , typename result_of::actions<
|
Chris@101
|
66 Context
|
Chris@101
|
67 >::type
|
Chris@101
|
68 >::type
|
Chris@101
|
69 >::type
|
Chris@101
|
70 type;
|
Chris@16
|
71 };
|
Chris@16
|
72 template <typename OuterEnv, typename Locals, typename Map, typename Lambda, typename Context>
|
Chris@16
|
73 typename result<lambda_eval(OuterEnv const &, Locals const &, Map const &, Lambda const &, Context const &)>::type
|
Chris@16
|
74 operator()(OuterEnv const & outer_env, Locals const & locals, Map const &, Lambda const & lambda, Context const & ctx) const
|
Chris@16
|
75 {
|
Chris@16
|
76 typedef
|
Chris@16
|
77 typename proto::detail::uncvref<
|
Chris@16
|
78 typename proto::result_of::value<
|
Chris@16
|
79 OuterEnv
|
Chris@16
|
80 >::type
|
Chris@16
|
81 >::type
|
Chris@16
|
82 outer_env_type;
|
Chris@16
|
83 typedef
|
Chris@16
|
84 typename proto::detail::uncvref<
|
Chris@16
|
85 typename proto::result_of::value<
|
Chris@16
|
86 Locals
|
Chris@16
|
87 >::type
|
Chris@16
|
88 >::type
|
Chris@16
|
89 locals_type;
|
Chris@16
|
90 typedef
|
Chris@16
|
91 typename proto::detail::uncvref<
|
Chris@16
|
92 typename proto::result_of::value<
|
Chris@16
|
93 Map
|
Chris@16
|
94 >::type
|
Chris@16
|
95 >::type
|
Chris@16
|
96 map_type;
|
Chris@16
|
97
|
Chris@16
|
98 typedef
|
Chris@16
|
99 typename proto::detail::uncvref<
|
Chris@16
|
100 typename result_of::env<Context>::type
|
Chris@16
|
101 >::type
|
Chris@16
|
102 env_type;
|
Chris@16
|
103
|
Chris@101
|
104 scoped_environment<
|
Chris@16
|
105 env_type
|
Chris@16
|
106 , outer_env_type
|
Chris@16
|
107 , locals_type
|
Chris@16
|
108 , map_type
|
Chris@16
|
109 >
|
Chris@16
|
110 env(phoenix::env(ctx), proto::value(outer_env), proto::value(locals));
|
Chris@16
|
111 return eval(lambda, phoenix::context(env, phoenix::actions(ctx)));
|
Chris@16
|
112 }
|
Chris@16
|
113 };
|
Chris@16
|
114 template <typename Dummy>
|
Chris@16
|
115 struct default_actions::when<rule::lambda, Dummy>
|
Chris@16
|
116 : call<lambda_eval, Dummy>
|
Chris@16
|
117 {};
|
Chris@16
|
118 template <typename Dummy>
|
Chris@16
|
119 struct is_nullary::when<rule::lambda, Dummy>
|
Chris@16
|
120 : proto::call<
|
Chris@16
|
121 evaluator(
|
Chris@16
|
122 proto::_child_c<3>
|
Chris@16
|
123 , proto::call<
|
Chris@16
|
124 functional::context(
|
Chris@16
|
125 proto::make<
|
Chris@16
|
126 mpl::true_()
|
Chris@16
|
127 >
|
Chris@16
|
128 , proto::make<
|
Chris@16
|
129 detail::scope_is_nullary_actions()
|
Chris@16
|
130 >
|
Chris@16
|
131 )
|
Chris@16
|
132 >
|
Chris@16
|
133 , proto::make<
|
Chris@16
|
134 proto::empty_env()
|
Chris@16
|
135 >
|
Chris@16
|
136 )
|
Chris@16
|
137 >
|
Chris@16
|
138 {};
|
Chris@16
|
139 template <typename Dummy>
|
Chris@16
|
140 struct is_nullary::when<rule::lambda_actor, Dummy>
|
Chris@16
|
141 : proto::or_<
|
Chris@16
|
142 proto::when<
|
Chris@16
|
143 expression::lambda_actor<
|
Chris@16
|
144 proto::terminal<vector0<> >
|
Chris@16
|
145 , proto::terminal<proto::_>
|
Chris@16
|
146 , meta_grammar
|
Chris@16
|
147 >
|
Chris@16
|
148 , mpl::true_()
|
Chris@16
|
149 >
|
Chris@16
|
150 , proto::when<
|
Chris@16
|
151 expression::lambda_actor<
|
Chris@16
|
152 proto::terminal<proto::_>
|
Chris@16
|
153 , proto::terminal<proto::_>
|
Chris@16
|
154 , meta_grammar
|
Chris@16
|
155 >
|
Chris@16
|
156 , proto::fold<
|
Chris@16
|
157 proto::call<proto::_value(proto::_child_c<0>)>
|
Chris@16
|
158 , proto::make<mpl::true_()>
|
Chris@16
|
159 , proto::make<
|
Chris@16
|
160 mpl::and_<
|
Chris@16
|
161 proto::_state
|
Chris@16
|
162 , proto::call<
|
Chris@16
|
163 evaluator(
|
Chris@16
|
164 proto::_
|
Chris@16
|
165 , _context
|
Chris@16
|
166 , proto::make<proto::empty_env()>
|
Chris@16
|
167 )
|
Chris@16
|
168 >
|
Chris@16
|
169 >()
|
Chris@16
|
170 >
|
Chris@16
|
171 >
|
Chris@16
|
172 >
|
Chris@16
|
173 >
|
Chris@16
|
174 {};
|
Chris@16
|
175 struct lambda_actor_eval
|
Chris@16
|
176 {
|
Chris@16
|
177 template <typename Sig>
|
Chris@16
|
178 struct result;
|
Chris@16
|
179 template <typename This, typename Vars, typename Map, typename Lambda, typename Context>
|
Chris@16
|
180 struct result<This(Vars, Map, Lambda, Context)>
|
Chris@16
|
181 {
|
Chris@16
|
182 typedef
|
Chris@16
|
183 typename proto::detail::uncvref<
|
Chris@16
|
184 typename result_of::env<Context>::type
|
Chris@16
|
185 >::type
|
Chris@16
|
186 env_type;
|
Chris@16
|
187 typedef
|
Chris@16
|
188 typename proto::detail::uncvref<
|
Chris@16
|
189 typename result_of::actions<Context>::type
|
Chris@16
|
190 >::type
|
Chris@16
|
191 actions_type;
|
Chris@16
|
192 typedef
|
Chris@16
|
193 typename proto::detail::uncvref<
|
Chris@16
|
194 typename proto::result_of::value<Vars>::type
|
Chris@16
|
195 >::type
|
Chris@16
|
196 vars_type;
|
Chris@16
|
197
|
Chris@101
|
198 typedef typename
|
Chris@16
|
199 detail::result_of::initialize_locals<
|
Chris@16
|
200 vars_type
|
Chris@16
|
201 , Context
|
Chris@16
|
202 >::type
|
Chris@16
|
203 locals_type;
|
Chris@16
|
204 typedef
|
Chris@16
|
205 typename expression::lambda<
|
Chris@16
|
206 env_type
|
Chris@16
|
207 , locals_type
|
Chris@16
|
208 , Map
|
Chris@16
|
209 , Lambda
|
Chris@16
|
210 >::type const
|
Chris@16
|
211 type;
|
Chris@16
|
212 };
|
Chris@16
|
213 template <
|
Chris@16
|
214 typename Vars
|
Chris@16
|
215 , typename Map
|
Chris@16
|
216 , typename Lambda
|
Chris@16
|
217 , typename Context
|
Chris@16
|
218 >
|
Chris@16
|
219 typename result<
|
Chris@16
|
220 lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context const &)
|
Chris@16
|
221 >::type const
|
Chris@16
|
222 operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context const & ctx) const
|
Chris@16
|
223 {
|
Chris@16
|
224 typedef
|
Chris@16
|
225 typename proto::detail::uncvref<
|
Chris@16
|
226 typename result_of::env<Context>::type
|
Chris@16
|
227 >::type
|
Chris@16
|
228 env_type;
|
Chris@101
|
229
|
Chris@16
|
230 typedef
|
Chris@16
|
231 typename proto::detail::uncvref<
|
Chris@16
|
232 typename proto::result_of::value<Vars>::type
|
Chris@16
|
233 >::type
|
Chris@16
|
234 vars_type;
|
Chris@16
|
235
|
Chris@101
|
236 typedef typename
|
Chris@16
|
237 detail::result_of::initialize_locals<
|
Chris@16
|
238 vars_type
|
Chris@16
|
239 , Context
|
Chris@16
|
240 >::type
|
Chris@16
|
241 locals_type;
|
Chris@16
|
242 locals_type locals = initialize_locals(proto::value(vars), ctx);
|
Chris@16
|
243 return
|
Chris@16
|
244 expression::
|
Chris@16
|
245 lambda<env_type, locals_type, Map, Lambda>::
|
Chris@16
|
246 make(phoenix::env(ctx), locals, map, lambda);
|
Chris@16
|
247 }
|
Chris@16
|
248 };
|
Chris@16
|
249 template <typename Dummy>
|
Chris@16
|
250 struct default_actions::when<rule::lambda_actor, Dummy>
|
Chris@16
|
251 : call<lambda_actor_eval, Dummy>
|
Chris@16
|
252 {};
|
Chris@16
|
253
|
Chris@16
|
254 template <typename Locals = void, typename Map = void, typename Dummy = void>
|
Chris@16
|
255 struct lambda_actor_gen;
|
Chris@16
|
256 template <>
|
Chris@16
|
257 struct lambda_actor_gen<void, void, void>
|
Chris@16
|
258 {
|
Chris@16
|
259 template <typename Expr>
|
Chris@16
|
260 typename expression::lambda_actor<vector0<>, detail::map_local_index_to_tuple<>, Expr>::type const
|
Chris@16
|
261 operator[](Expr const & expr) const
|
Chris@16
|
262 {
|
Chris@16
|
263 typedef vector0<> locals_type;
|
Chris@16
|
264 typedef detail::map_local_index_to_tuple<> map_type;
|
Chris@16
|
265 return expression::lambda_actor<locals_type, map_type, Expr>::make(locals_type(), map_type(), expr);
|
Chris@16
|
266 }
|
Chris@16
|
267 };
|
Chris@16
|
268 template <typename Locals, typename Map>
|
Chris@16
|
269 struct lambda_actor_gen<Locals, Map>
|
Chris@16
|
270 {
|
Chris@101
|
271 lambda_actor_gen(Locals const & locals_)
|
Chris@101
|
272 : locals(locals_)
|
Chris@16
|
273 {}
|
Chris@16
|
274 lambda_actor_gen(lambda_actor_gen const & o)
|
Chris@16
|
275 : locals(o.locals)
|
Chris@16
|
276 {};
|
Chris@16
|
277 template <typename Expr>
|
Chris@16
|
278 typename expression::lambda_actor<
|
Chris@16
|
279 Locals
|
Chris@16
|
280 , Map
|
Chris@16
|
281 , Expr
|
Chris@16
|
282 >::type const
|
Chris@16
|
283 operator[](Expr const & expr) const
|
Chris@16
|
284 {
|
Chris@16
|
285 return expression::lambda_actor<Locals, Map, Expr>::make(locals, Map(), expr);
|
Chris@16
|
286 }
|
Chris@16
|
287 Locals locals;
|
Chris@16
|
288 };
|
Chris@16
|
289 struct lambda_local_gen
|
Chris@16
|
290 : lambda_actor_gen<>
|
Chris@16
|
291 {
|
Chris@16
|
292 lambda_actor_gen<> const
|
Chris@16
|
293 operator()() const
|
Chris@16
|
294 {
|
Chris@16
|
295 return lambda_actor_gen<>();
|
Chris@16
|
296 }
|
Chris@16
|
297
|
Chris@16
|
298
|
Chris@16
|
299
|
Chris@16
|
300
|
Chris@16
|
301
|
Chris@16
|
302
|
Chris@16
|
303
|
Chris@16
|
304 template <typename A0>
|
Chris@16
|
305 lambda_actor_gen<
|
Chris@16
|
306 vector1<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type>
|
Chris@16
|
307 , detail::map_local_index_to_tuple<typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type>
|
Chris@16
|
308 >
|
Chris@16
|
309 operator()(A0 const& a0) const
|
Chris@16
|
310 {
|
Chris@16
|
311 typedef
|
Chris@16
|
312 vector1<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type>
|
Chris@16
|
313 locals_type;
|
Chris@16
|
314 locals_type locals = {proto::child_c<1>(a0)};
|
Chris@16
|
315 return
|
Chris@16
|
316 lambda_actor_gen<
|
Chris@16
|
317 locals_type
|
Chris@16
|
318 , detail::map_local_index_to_tuple<
|
Chris@16
|
319 typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type
|
Chris@16
|
320 >
|
Chris@16
|
321 >(locals);
|
Chris@16
|
322 }
|
Chris@16
|
323
|
Chris@16
|
324
|
Chris@16
|
325
|
Chris@16
|
326
|
Chris@16
|
327
|
Chris@16
|
328
|
Chris@16
|
329
|
Chris@16
|
330 template <typename A0 , typename A1>
|
Chris@16
|
331 lambda_actor_gen<
|
Chris@16
|
332 vector2<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type>
|
Chris@16
|
333 , detail::map_local_index_to_tuple<typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type>
|
Chris@16
|
334 >
|
Chris@16
|
335 operator()(A0 const& a0 , A1 const& a1) const
|
Chris@16
|
336 {
|
Chris@16
|
337 typedef
|
Chris@16
|
338 vector2<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type>
|
Chris@16
|
339 locals_type;
|
Chris@16
|
340 locals_type locals = {proto::child_c<1>(a0) , proto::child_c<1>(a1)};
|
Chris@16
|
341 return
|
Chris@16
|
342 lambda_actor_gen<
|
Chris@16
|
343 locals_type
|
Chris@16
|
344 , detail::map_local_index_to_tuple<
|
Chris@16
|
345 typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type
|
Chris@16
|
346 >
|
Chris@16
|
347 >(locals);
|
Chris@16
|
348 }
|
Chris@16
|
349
|
Chris@16
|
350
|
Chris@16
|
351
|
Chris@16
|
352
|
Chris@16
|
353
|
Chris@16
|
354
|
Chris@16
|
355
|
Chris@16
|
356 template <typename A0 , typename A1 , typename A2>
|
Chris@16
|
357 lambda_actor_gen<
|
Chris@16
|
358 vector3<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A2 , 1 >::type >::type>
|
Chris@16
|
359 , detail::map_local_index_to_tuple<typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type >::type>
|
Chris@16
|
360 >
|
Chris@16
|
361 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
|
Chris@16
|
362 {
|
Chris@16
|
363 typedef
|
Chris@16
|
364 vector3<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A2 , 1 >::type >::type>
|
Chris@16
|
365 locals_type;
|
Chris@16
|
366 locals_type locals = {proto::child_c<1>(a0) , proto::child_c<1>(a1) , proto::child_c<1>(a2)};
|
Chris@16
|
367 return
|
Chris@16
|
368 lambda_actor_gen<
|
Chris@16
|
369 locals_type
|
Chris@16
|
370 , detail::map_local_index_to_tuple<
|
Chris@16
|
371 typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type >::type
|
Chris@16
|
372 >
|
Chris@16
|
373 >(locals);
|
Chris@16
|
374 }
|
Chris@16
|
375
|
Chris@16
|
376
|
Chris@16
|
377
|
Chris@16
|
378
|
Chris@16
|
379
|
Chris@16
|
380
|
Chris@16
|
381
|
Chris@16
|
382 template <typename A0 , typename A1 , typename A2 , typename A3>
|
Chris@16
|
383 lambda_actor_gen<
|
Chris@16
|
384 vector4<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A2 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A3 , 1 >::type >::type>
|
Chris@16
|
385 , detail::map_local_index_to_tuple<typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type >::type>
|
Chris@16
|
386 >
|
Chris@16
|
387 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
|
Chris@16
|
388 {
|
Chris@16
|
389 typedef
|
Chris@16
|
390 vector4<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A2 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A3 , 1 >::type >::type>
|
Chris@16
|
391 locals_type;
|
Chris@16
|
392 locals_type locals = {proto::child_c<1>(a0) , proto::child_c<1>(a1) , proto::child_c<1>(a2) , proto::child_c<1>(a3)};
|
Chris@16
|
393 return
|
Chris@16
|
394 lambda_actor_gen<
|
Chris@16
|
395 locals_type
|
Chris@16
|
396 , detail::map_local_index_to_tuple<
|
Chris@16
|
397 typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type >::type
|
Chris@16
|
398 >
|
Chris@16
|
399 >(locals);
|
Chris@16
|
400 }
|
Chris@16
|
401
|
Chris@16
|
402
|
Chris@16
|
403
|
Chris@16
|
404
|
Chris@16
|
405
|
Chris@16
|
406
|
Chris@16
|
407
|
Chris@16
|
408 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
|
Chris@16
|
409 lambda_actor_gen<
|
Chris@16
|
410 vector5<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A2 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A3 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A4 , 1 >::type >::type>
|
Chris@16
|
411 , detail::map_local_index_to_tuple<typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type >::type>
|
Chris@16
|
412 >
|
Chris@16
|
413 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
|
Chris@16
|
414 {
|
Chris@16
|
415 typedef
|
Chris@16
|
416 vector5<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A2 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A3 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A4 , 1 >::type >::type>
|
Chris@16
|
417 locals_type;
|
Chris@16
|
418 locals_type locals = {proto::child_c<1>(a0) , proto::child_c<1>(a1) , proto::child_c<1>(a2) , proto::child_c<1>(a3) , proto::child_c<1>(a4)};
|
Chris@16
|
419 return
|
Chris@16
|
420 lambda_actor_gen<
|
Chris@16
|
421 locals_type
|
Chris@16
|
422 , detail::map_local_index_to_tuple<
|
Chris@16
|
423 typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type >::type
|
Chris@16
|
424 >
|
Chris@16
|
425 >(locals);
|
Chris@16
|
426 }
|
Chris@16
|
427
|
Chris@16
|
428
|
Chris@16
|
429
|
Chris@16
|
430
|
Chris@16
|
431
|
Chris@16
|
432
|
Chris@16
|
433
|
Chris@16
|
434 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
|
Chris@16
|
435 lambda_actor_gen<
|
Chris@16
|
436 vector6<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A2 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A3 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A4 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A5 , 1 >::type >::type>
|
Chris@16
|
437 , detail::map_local_index_to_tuple<typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type >::type>
|
Chris@16
|
438 >
|
Chris@16
|
439 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
|
Chris@16
|
440 {
|
Chris@16
|
441 typedef
|
Chris@16
|
442 vector6<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A2 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A3 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A4 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A5 , 1 >::type >::type>
|
Chris@16
|
443 locals_type;
|
Chris@16
|
444 locals_type locals = {proto::child_c<1>(a0) , proto::child_c<1>(a1) , proto::child_c<1>(a2) , proto::child_c<1>(a3) , proto::child_c<1>(a4) , proto::child_c<1>(a5)};
|
Chris@16
|
445 return
|
Chris@16
|
446 lambda_actor_gen<
|
Chris@16
|
447 locals_type
|
Chris@16
|
448 , detail::map_local_index_to_tuple<
|
Chris@16
|
449 typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type >::type
|
Chris@16
|
450 >
|
Chris@16
|
451 >(locals);
|
Chris@16
|
452 }
|
Chris@16
|
453
|
Chris@16
|
454
|
Chris@16
|
455
|
Chris@16
|
456
|
Chris@16
|
457
|
Chris@16
|
458
|
Chris@16
|
459
|
Chris@16
|
460 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
|
Chris@16
|
461 lambda_actor_gen<
|
Chris@16
|
462 vector7<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A2 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A3 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A4 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A5 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A6 , 1 >::type >::type>
|
Chris@16
|
463 , detail::map_local_index_to_tuple<typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type >::type>
|
Chris@16
|
464 >
|
Chris@16
|
465 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
|
Chris@16
|
466 {
|
Chris@16
|
467 typedef
|
Chris@16
|
468 vector7<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A2 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A3 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A4 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A5 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A6 , 1 >::type >::type>
|
Chris@16
|
469 locals_type;
|
Chris@16
|
470 locals_type locals = {proto::child_c<1>(a0) , proto::child_c<1>(a1) , proto::child_c<1>(a2) , proto::child_c<1>(a3) , proto::child_c<1>(a4) , proto::child_c<1>(a5) , proto::child_c<1>(a6)};
|
Chris@16
|
471 return
|
Chris@16
|
472 lambda_actor_gen<
|
Chris@16
|
473 locals_type
|
Chris@16
|
474 , detail::map_local_index_to_tuple<
|
Chris@16
|
475 typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type >::type
|
Chris@16
|
476 >
|
Chris@16
|
477 >(locals);
|
Chris@16
|
478 }
|
Chris@16
|
479
|
Chris@16
|
480
|
Chris@16
|
481
|
Chris@16
|
482
|
Chris@16
|
483
|
Chris@16
|
484
|
Chris@16
|
485
|
Chris@16
|
486 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
|
Chris@16
|
487 lambda_actor_gen<
|
Chris@16
|
488 vector8<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A2 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A3 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A4 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A5 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A6 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A7 , 1 >::type >::type>
|
Chris@16
|
489 , detail::map_local_index_to_tuple<typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type >::type>
|
Chris@16
|
490 >
|
Chris@16
|
491 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7) const
|
Chris@16
|
492 {
|
Chris@16
|
493 typedef
|
Chris@16
|
494 vector8<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A2 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A3 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A4 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A5 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A6 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A7 , 1 >::type >::type>
|
Chris@16
|
495 locals_type;
|
Chris@16
|
496 locals_type locals = {proto::child_c<1>(a0) , proto::child_c<1>(a1) , proto::child_c<1>(a2) , proto::child_c<1>(a3) , proto::child_c<1>(a4) , proto::child_c<1>(a5) , proto::child_c<1>(a6) , proto::child_c<1>(a7)};
|
Chris@16
|
497 return
|
Chris@16
|
498 lambda_actor_gen<
|
Chris@16
|
499 locals_type
|
Chris@16
|
500 , detail::map_local_index_to_tuple<
|
Chris@16
|
501 typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type >::type
|
Chris@16
|
502 >
|
Chris@16
|
503 >(locals);
|
Chris@16
|
504 }
|
Chris@16
|
505
|
Chris@16
|
506
|
Chris@16
|
507
|
Chris@16
|
508
|
Chris@16
|
509
|
Chris@16
|
510
|
Chris@16
|
511
|
Chris@16
|
512 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
|
Chris@16
|
513 lambda_actor_gen<
|
Chris@16
|
514 vector9<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A2 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A3 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A4 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A5 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A6 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A7 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A8 , 1 >::type >::type>
|
Chris@16
|
515 , detail::map_local_index_to_tuple<typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type >::type>
|
Chris@16
|
516 >
|
Chris@16
|
517 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8) const
|
Chris@16
|
518 {
|
Chris@16
|
519 typedef
|
Chris@16
|
520 vector9<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A2 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A3 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A4 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A5 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A6 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A7 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A8 , 1 >::type >::type>
|
Chris@16
|
521 locals_type;
|
Chris@16
|
522 locals_type locals = {proto::child_c<1>(a0) , proto::child_c<1>(a1) , proto::child_c<1>(a2) , proto::child_c<1>(a3) , proto::child_c<1>(a4) , proto::child_c<1>(a5) , proto::child_c<1>(a6) , proto::child_c<1>(a7) , proto::child_c<1>(a8)};
|
Chris@16
|
523 return
|
Chris@16
|
524 lambda_actor_gen<
|
Chris@16
|
525 locals_type
|
Chris@16
|
526 , detail::map_local_index_to_tuple<
|
Chris@16
|
527 typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type >::type
|
Chris@16
|
528 >
|
Chris@16
|
529 >(locals);
|
Chris@16
|
530 }
|
Chris@16
|
531
|
Chris@16
|
532
|
Chris@16
|
533
|
Chris@16
|
534
|
Chris@16
|
535
|
Chris@16
|
536
|
Chris@16
|
537
|
Chris@16
|
538 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
|
Chris@16
|
539 lambda_actor_gen<
|
Chris@16
|
540 vector10<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A2 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A3 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A4 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A5 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A6 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A7 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A8 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A9 , 1 >::type >::type>
|
Chris@16
|
541 , detail::map_local_index_to_tuple<typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type >::type>
|
Chris@16
|
542 >
|
Chris@16
|
543 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9) const
|
Chris@16
|
544 {
|
Chris@16
|
545 typedef
|
Chris@16
|
546 vector10<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A1 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A2 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A3 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A4 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A5 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A6 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A7 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A8 , 1 >::type >::type , typename proto::detail::uncvref< typename proto::result_of::child_c< A9 , 1 >::type >::type>
|
Chris@16
|
547 locals_type;
|
Chris@16
|
548 locals_type locals = {proto::child_c<1>(a0) , proto::child_c<1>(a1) , proto::child_c<1>(a2) , proto::child_c<1>(a3) , proto::child_c<1>(a4) , proto::child_c<1>(a5) , proto::child_c<1>(a6) , proto::child_c<1>(a7) , proto::child_c<1>(a8) , proto::child_c<1>(a9)};
|
Chris@16
|
549 return
|
Chris@16
|
550 lambda_actor_gen<
|
Chris@16
|
551 locals_type
|
Chris@16
|
552 , detail::map_local_index_to_tuple<
|
Chris@16
|
553 typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A1 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A2 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A3 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A4 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A5 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A6 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A7 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A8 , 0 >::type >::type >::type , typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A9 , 0 >::type >::type >::type
|
Chris@16
|
554 >
|
Chris@16
|
555 >(locals);
|
Chris@16
|
556 }
|
Chris@16
|
557 };
|
Chris@16
|
558 typedef lambda_local_gen lambda_type;
|
Chris@16
|
559 lambda_local_gen const lambda = lambda_local_gen();
|
Chris@16
|
560 }}
|