1 /*==============================================================================
2 Copyright (c) 2005-2010 Joel de Guzman
3 Copyright (c) 2010 Thomas Heller
5 Distributed under the Boost Software License, Version 1.0. (See accompanying
6 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 ==============================================================================*/
15 template <typename This, typename A0>
16 struct result<This(A0)>
17 : result<This(typename detail::result_type_deduction_helper<A0>::type)>
19 template <typename This, typename A0> struct result<This(A0 &)> : result_of::actor<proto_base_expr, A0 &> {}; template <typename A0> typename result_of::actor<proto_base_expr, A0 &>::type operator()(A0 & a0) const { typedef vector2< const actor<Expr> *, A0 & > env_type; env_type env = {this, a0}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename A0> typename result_of::actor<proto_base_expr, A0 &>::type operator()(A0 & a0) { typedef vector2< const actor<Expr> *, A0 & > env_type; env_type env = {this, a0}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename This, typename A0> struct result<This(A0 const&)> : result_of::actor<proto_base_expr, A0 const&> {}; template <typename A0> typename result_of::actor<proto_base_expr, A0 const&>::type operator()(A0 const& a0) const { typedef vector2< const actor<Expr> *, A0 const& > env_type; env_type env = {this, a0}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename A0> typename result_of::actor<proto_base_expr, A0 const&>::type operator()(A0 const& a0) { typedef vector2< const actor<Expr> *, A0 const& > env_type; env_type env = {this, a0}; return phoenix::eval(*this, phoenix::context(env, default_actions())); }
27 template <typename This, typename A0 , typename A1>
28 struct result<This(A0 , A1)>
29 : result<This(typename detail::result_type_deduction_helper<A0>::type , typename detail::result_type_deduction_helper<A1>::type)>
31 template <typename This, typename A0 , typename A1> struct result<This(A0 & , A1 &)> : result_of::actor<proto_base_expr, A0 & , A1 &> {}; template <typename A0 , typename A1> typename result_of::actor<proto_base_expr, A0 & , A1 &>::type operator()(A0 & a0 , A1 & a1) const { typedef vector3< const actor<Expr> *, A0 & , A1 & > env_type; env_type env = {this, a0 , a1}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename A0 , typename A1> typename result_of::actor<proto_base_expr, A0 & , A1 &>::type operator()(A0 & a0 , A1 & a1) { typedef vector3< const actor<Expr> *, A0 & , A1 & > env_type; env_type env = {this, a0 , a1}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename This, typename A0 , typename A1> struct result<This(A0 & , A1 const&)> : result_of::actor<proto_base_expr, A0 & , A1 const&> {}; template <typename A0 , typename A1> typename result_of::actor<proto_base_expr, A0 & , A1 const&>::type operator()(A0 & a0 , A1 const& a1) const { typedef vector3< const actor<Expr> *, A0 & , A1 const& > env_type; env_type env = {this, a0 , a1}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename A0 , typename A1> typename result_of::actor<proto_base_expr, A0 & , A1 const&>::type operator()(A0 & a0 , A1 const& a1) { typedef vector3< const actor<Expr> *, A0 & , A1 const& > env_type; env_type env = {this, a0 , a1}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename This, typename A0 , typename A1> struct result<This(A0 const& , A1 &)> : result_of::actor<proto_base_expr, A0 const& , A1 &> {}; template <typename A0 , typename A1> typename result_of::actor<proto_base_expr, A0 const& , A1 &>::type operator()(A0 const& a0 , A1 & a1) const { typedef vector3< const actor<Expr> *, A0 const& , A1 & > env_type; env_type env = {this, a0 , a1}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename A0 , typename A1> typename result_of::actor<proto_base_expr, A0 const& , A1 &>::type operator()(A0 const& a0 , A1 & a1) { typedef vector3< const actor<Expr> *, A0 const& , A1 & > env_type; env_type env = {this, a0 , a1}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename This, typename A0 , typename A1> struct result<This(A0 const& , A1 const&)> : result_of::actor<proto_base_expr, A0 const& , A1 const&> {}; template <typename A0 , typename A1> typename result_of::actor<proto_base_expr, A0 const& , A1 const&>::type operator()(A0 const& a0 , A1 const& a1) const { typedef vector3< const actor<Expr> *, A0 const& , A1 const& > env_type; env_type env = {this, a0 , a1}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename A0 , typename A1> typename result_of::actor<proto_base_expr, A0 const& , A1 const&>::type operator()(A0 const& a0 , A1 const& a1) { typedef vector3< const actor<Expr> *, A0 const& , A1 const& > env_type; env_type env = {this, a0 , a1}; return phoenix::eval(*this, phoenix::context(env, default_actions())); }
39 template <typename This, typename A0 , typename A1 , typename A2>
40 struct result<This(A0 , A1 , A2)>
41 : result<This(A0 const& , A1 const& , A2 const&)>
43 template <typename This, typename A0 , typename A1 , typename A2>
44 struct result<This(A0 & , A1 & , A2 &)>
45 : result_of::actor<proto_base_expr, A0 & , A1 & , A2 &>
47 template <typename A0 , typename A1 , typename A2>
48 typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 &>::type
49 operator()(A0 & a0 , A1 & a1 , A2 & a2)
53 const actor<Expr> *, A0 & , A1 & , A2 &
56 env_type env = {this, a0 , a1 , a2};
58 return phoenix::eval(*this, phoenix::context(env, default_actions()));
60 template <typename A0 , typename A1 , typename A2>
61 typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 &>::type
62 operator()(A0 & a0 , A1 & a1 , A2 & a2) const
66 const actor<Expr> *, A0 & , A1 & , A2 &
69 env_type env = {this, a0 , a1 , a2};
71 return phoenix::eval(*this, phoenix::context(env, default_actions()));
73 template <typename A0 , typename A1 , typename A2>
74 typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const&>::type
75 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2)
79 const actor<Expr> *, A0 const& , A1 const& , A2 const&
82 env_type env = {this, a0 , a1 , a2};
84 return phoenix::eval(*this, phoenix::context(env, default_actions()));
86 template <typename A0 , typename A1 , typename A2>
87 typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const&>::type
88 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
92 const actor<Expr> *, A0 const& , A1 const& , A2 const&
95 env_type env = {this, a0 , a1 , a2};
97 return phoenix::eval(*this, phoenix::context(env, default_actions()));
106 template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
107 struct result<This(A0 , A1 , A2 , A3)>
108 : result<This(A0 const& , A1 const& , A2 const& , A3 const&)>
110 template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
111 struct result<This(A0 & , A1 & , A2 & , A3 &)>
112 : result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 &>
114 template <typename A0 , typename A1 , typename A2 , typename A3>
115 typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 &>::type
116 operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3)
120 const actor<Expr> *, A0 & , A1 & , A2 & , A3 &
123 env_type env = {this, a0 , a1 , a2 , a3};
125 return phoenix::eval(*this, phoenix::context(env, default_actions()));
127 template <typename A0 , typename A1 , typename A2 , typename A3>
128 typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 &>::type
129 operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
133 const actor<Expr> *, A0 & , A1 & , A2 & , A3 &
136 env_type env = {this, a0 , a1 , a2 , a3};
138 return phoenix::eval(*this, phoenix::context(env, default_actions()));
140 template <typename A0 , typename A1 , typename A2 , typename A3>
141 typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const&>::type
142 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
146 const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const&
149 env_type env = {this, a0 , a1 , a2 , a3};
151 return phoenix::eval(*this, phoenix::context(env, default_actions()));
153 template <typename A0 , typename A1 , typename A2 , typename A3>
154 typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const&>::type
155 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
159 const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const&
162 env_type env = {this, a0 , a1 , a2 , a3};
164 return phoenix::eval(*this, phoenix::context(env, default_actions()));
173 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
174 struct result<This(A0 , A1 , A2 , A3 , A4)>
175 : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const&)>
177 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
178 struct result<This(A0 & , A1 & , A2 & , A3 & , A4 &)>
179 : result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 &>
181 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
182 typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
183 operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4)
187 const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 &
190 env_type env = {this, a0 , a1 , a2 , a3 , a4};
192 return phoenix::eval(*this, phoenix::context(env, default_actions()));
194 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
195 typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
196 operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
200 const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 &
203 env_type env = {this, a0 , a1 , a2 , a3 , a4};
205 return phoenix::eval(*this, phoenix::context(env, default_actions()));
207 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
208 typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&>::type
209 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
213 const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&
216 env_type env = {this, a0 , a1 , a2 , a3 , a4};
218 return phoenix::eval(*this, phoenix::context(env, default_actions()));
220 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
221 typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&>::type
222 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
226 const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&
229 env_type env = {this, a0 , a1 , a2 , a3 , a4};
231 return phoenix::eval(*this, phoenix::context(env, default_actions()));
240 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
241 struct result<This(A0 , A1 , A2 , A3 , A4 , A5)>
242 : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&)>
244 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
245 struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 &)>
246 : result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>
248 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
249 typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
250 operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5)
254 const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &
257 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5};
259 return phoenix::eval(*this, phoenix::context(env, default_actions()));
261 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
262 typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
263 operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
267 const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &
270 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5};
272 return phoenix::eval(*this, phoenix::context(env, default_actions()));
274 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
275 typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&>::type
276 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
280 const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&
283 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5};
285 return phoenix::eval(*this, phoenix::context(env, default_actions()));
287 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
288 typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&>::type
289 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
293 const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&
296 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5};
298 return phoenix::eval(*this, phoenix::context(env, default_actions()));
307 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
308 struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6)>
309 : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&)>
311 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
312 struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &)>
313 : result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>
315 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
316 typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
317 operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6)
321 const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &
324 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6};
326 return phoenix::eval(*this, phoenix::context(env, default_actions()));
328 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
329 typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
330 operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
334 const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &
337 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6};
339 return phoenix::eval(*this, phoenix::context(env, default_actions()));
341 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
342 typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&>::type
343 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
347 const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&
350 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6};
352 return phoenix::eval(*this, phoenix::context(env, default_actions()));
354 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
355 typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&>::type
356 operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
360 const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&
363 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6};
365 return phoenix::eval(*this, phoenix::context(env, default_actions()));
374 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
375 struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)>
376 : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&)>
378 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
379 struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &)>
380 : result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>
382 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
383 typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
384 operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7)
388 const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &
391 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
393 return phoenix::eval(*this, phoenix::context(env, default_actions()));
395 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
396 typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
397 operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
401 const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &
404 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
406 return phoenix::eval(*this, phoenix::context(env, default_actions()));
408 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
409 typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&>::type
410 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)
414 const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&
417 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
419 return phoenix::eval(*this, phoenix::context(env, default_actions()));
421 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
422 typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&>::type
423 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
427 const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&
430 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
432 return phoenix::eval(*this, phoenix::context(env, default_actions()));
441 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
442 struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)>
443 : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&)>
445 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
446 struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &)>
447 : result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>
449 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
450 typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
451 operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8)
455 const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &
458 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
460 return phoenix::eval(*this, phoenix::context(env, default_actions()));
462 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
463 typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
464 operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
468 const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &
471 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
473 return phoenix::eval(*this, phoenix::context(env, default_actions()));
475 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
476 typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&>::type
477 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)
481 const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&
484 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
486 return phoenix::eval(*this, phoenix::context(env, default_actions()));
488 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
489 typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&>::type
490 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
494 const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&
497 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
499 return phoenix::eval(*this, phoenix::context(env, default_actions()));
508 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
509 struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)>
510 : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&)>
512 template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
513 struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &)>
514 : result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>
516 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
517 typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
518 operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9)
522 const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &
525 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
527 return phoenix::eval(*this, phoenix::context(env, default_actions()));
529 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
530 typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
531 operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9) const
535 const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &
538 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
540 return phoenix::eval(*this, phoenix::context(env, default_actions()));
542 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
543 typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&>::type
544 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)
548 const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&
551 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
553 return phoenix::eval(*this, phoenix::context(env, default_actions()));
555 template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
556 typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&>::type
557 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
561 const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&
564 env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
566 return phoenix::eval(*this, phoenix::context(env, default_actions()));