1 /*==============================================================================
2     Copyright (c) 2005-2010 Joel de Guzman
3     Copyright (c) 2010 Thomas Heller
4 
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 ==============================================================================*/
8     namespace result_of
9     {
10         template <typename Expr
11             , typename A0 = void , typename A1 = void , typename A2 = void , typename A3 = void , typename A4 = void , typename A5 = void , typename A6 = void , typename A7 = void , typename A8 = void , typename A9 = void , typename A10 = void , typename A11 = void , typename A12 = void , typename A13 = void , typename A14 = void , typename A15 = void , typename A16 = void , typename A17 = void , typename A18 = void , typename A19 = void , typename A20 = void , typename A21 = void , typename A22 = void , typename A23 = void , typename A24 = void , typename A25 = void , typename A26 = void , typename A27 = void , typename A28 = void , typename A29 = void , typename A30 = void , typename A31 = void , typename A32 = void , typename A33 = void , typename A34 = void , typename A35 = void , typename A36 = void , typename A37 = void , typename A38 = void , typename A39 = void
12             , typename Dummy = void>
13         struct actor;
14         template <typename Expr>
15         struct nullary_actor_result
16         {
17             typedef
18                 typename boost::phoenix::evaluator::impl<
19                     Expr const&
20                   , vector2<
21                         vector1<const ::boost::phoenix::actor<Expr> *> &
22                       , default_actions
23                     > const &
24                   , proto::empty_env
25                 >::result_type
26                 type;
27         };
28         template <typename Expr>
29         struct actor<Expr>
30         {
31             typedef
32 
33                 typename mpl::eval_if_c<
34                     result_of::is_nullary<Expr>::value
35                   , nullary_actor_result<Expr>
36                   , mpl::identity<detail::error_expecting_arguments>
37                 >::type
38             type;
39         };
40 
41 
42 
43 
44 
45 
46 
47         template <typename Expr, typename A0>
48         struct actor<Expr, A0>
49         {
50             typedef
51                 typename phoenix::evaluator::
52                     impl<
53                         Expr const&
54                       , vector2<
55                             vector2<const ::boost::phoenix::actor<Expr> *, A0> &
56                           , default_actions
57                         > const &
58                       , proto::empty_env
59                     >::result_type
60                 type;
61         };
62 
63 
64 
65 
66 
67 
68 
69         template <typename Expr, typename A0 , typename A1>
70         struct actor<Expr, A0 , A1>
71         {
72             typedef
73                 typename phoenix::evaluator::
74                     impl<
75                         Expr const&
76                       , vector2<
77                             vector3<const ::boost::phoenix::actor<Expr> *, A0 , A1> &
78                           , default_actions
79                         > const &
80                       , proto::empty_env
81                     >::result_type
82                 type;
83         };
84 
85 
86 
87 
88 
89 
90 
91         template <typename Expr, typename A0 , typename A1 , typename A2>
92         struct actor<Expr, A0 , A1 , A2>
93         {
94             typedef
95                 typename phoenix::evaluator::
96                     impl<
97                         Expr const&
98                       , vector2<
99                             vector4<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2> &
100                           , default_actions
101                         > const &
102                       , proto::empty_env
103                     >::result_type
104                 type;
105         };
106 
107 
108 
109 
110 
111 
112 
113         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3>
114         struct actor<Expr, A0 , A1 , A2 , A3>
115         {
116             typedef
117                 typename phoenix::evaluator::
118                     impl<
119                         Expr const&
120                       , vector2<
121                             vector5<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3> &
122                           , default_actions
123                         > const &
124                       , proto::empty_env
125                     >::result_type
126                 type;
127         };
128 
129 
130 
131 
132 
133 
134 
135         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
136         struct actor<Expr, A0 , A1 , A2 , A3 , A4>
137         {
138             typedef
139                 typename phoenix::evaluator::
140                     impl<
141                         Expr const&
142                       , vector2<
143                             vector6<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4> &
144                           , default_actions
145                         > const &
146                       , proto::empty_env
147                     >::result_type
148                 type;
149         };
150 
151 
152 
153 
154 
155 
156 
157         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
158         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5>
159         {
160             typedef
161                 typename phoenix::evaluator::
162                     impl<
163                         Expr const&
164                       , vector2<
165                             vector7<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5> &
166                           , default_actions
167                         > const &
168                       , proto::empty_env
169                     >::result_type
170                 type;
171         };
172 
173 
174 
175 
176 
177 
178 
179         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
180         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6>
181         {
182             typedef
183                 typename phoenix::evaluator::
184                     impl<
185                         Expr const&
186                       , vector2<
187                             vector8<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6> &
188                           , default_actions
189                         > const &
190                       , proto::empty_env
191                     >::result_type
192                 type;
193         };
194 
195 
196 
197 
198 
199 
200 
201         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
202         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
203         {
204             typedef
205                 typename phoenix::evaluator::
206                     impl<
207                         Expr const&
208                       , vector2<
209                             vector9<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7> &
210                           , default_actions
211                         > const &
212                       , proto::empty_env
213                     >::result_type
214                 type;
215         };
216 
217 
218 
219 
220 
221 
222 
223         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
224         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
225         {
226             typedef
227                 typename phoenix::evaluator::
228                     impl<
229                         Expr const&
230                       , vector2<
231                             vector10<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8> &
232                           , default_actions
233                         > const &
234                       , proto::empty_env
235                     >::result_type
236                 type;
237         };
238 
239 
240 
241 
242 
243 
244 
245         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
246         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
247         {
248             typedef
249                 typename phoenix::evaluator::
250                     impl<
251                         Expr const&
252                       , vector2<
253                             vector11<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> &
254                           , default_actions
255                         > const &
256                       , proto::empty_env
257                     >::result_type
258                 type;
259         };
260 
261 
262 
263 
264 
265 
266 
267         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
268         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
269         {
270             typedef
271                 typename phoenix::evaluator::
272                     impl<
273                         Expr const&
274                       , vector2<
275                             vector12<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10> &
276                           , default_actions
277                         > const &
278                       , proto::empty_env
279                     >::result_type
280                 type;
281         };
282 
283 
284 
285 
286 
287 
288 
289         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
290         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
291         {
292             typedef
293                 typename phoenix::evaluator::
294                     impl<
295                         Expr const&
296                       , vector2<
297                             vector13<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11> &
298                           , default_actions
299                         > const &
300                       , proto::empty_env
301                     >::result_type
302                 type;
303         };
304 
305 
306 
307 
308 
309 
310 
311         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
312         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
313         {
314             typedef
315                 typename phoenix::evaluator::
316                     impl<
317                         Expr const&
318                       , vector2<
319                             vector14<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12> &
320                           , default_actions
321                         > const &
322                       , proto::empty_env
323                     >::result_type
324                 type;
325         };
326 
327 
328 
329 
330 
331 
332 
333         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
334         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
335         {
336             typedef
337                 typename phoenix::evaluator::
338                     impl<
339                         Expr const&
340                       , vector2<
341                             vector15<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13> &
342                           , default_actions
343                         > const &
344                       , proto::empty_env
345                     >::result_type
346                 type;
347         };
348 
349 
350 
351 
352 
353 
354 
355         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
356         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
357         {
358             typedef
359                 typename phoenix::evaluator::
360                     impl<
361                         Expr const&
362                       , vector2<
363                             vector16<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14> &
364                           , default_actions
365                         > const &
366                       , proto::empty_env
367                     >::result_type
368                 type;
369         };
370 
371 
372 
373 
374 
375 
376 
377         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
378         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
379         {
380             typedef
381                 typename phoenix::evaluator::
382                     impl<
383                         Expr const&
384                       , vector2<
385                             vector17<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15> &
386                           , default_actions
387                         > const &
388                       , proto::empty_env
389                     >::result_type
390                 type;
391         };
392 
393 
394 
395 
396 
397 
398 
399         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
400         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
401         {
402             typedef
403                 typename phoenix::evaluator::
404                     impl<
405                         Expr const&
406                       , vector2<
407                             vector18<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16> &
408                           , default_actions
409                         > const &
410                       , proto::empty_env
411                     >::result_type
412                 type;
413         };
414 
415 
416 
417 
418 
419 
420 
421         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
422         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
423         {
424             typedef
425                 typename phoenix::evaluator::
426                     impl<
427                         Expr const&
428                       , vector2<
429                             vector19<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17> &
430                           , default_actions
431                         > const &
432                       , proto::empty_env
433                     >::result_type
434                 type;
435         };
436 
437 
438 
439 
440 
441 
442 
443         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
444         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
445         {
446             typedef
447                 typename phoenix::evaluator::
448                     impl<
449                         Expr const&
450                       , vector2<
451                             vector20<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18> &
452                           , default_actions
453                         > const &
454                       , proto::empty_env
455                     >::result_type
456                 type;
457         };
458 
459 
460 
461 
462 
463 
464 
465         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
466         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
467         {
468             typedef
469                 typename phoenix::evaluator::
470                     impl<
471                         Expr const&
472                       , vector2<
473                             vector21<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19> &
474                           , default_actions
475                         > const &
476                       , proto::empty_env
477                     >::result_type
478                 type;
479         };
480 
481 
482 
483 
484 
485 
486 
487         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
488         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
489         {
490             typedef
491                 typename phoenix::evaluator::
492                     impl<
493                         Expr const&
494                       , vector2<
495                             vector22<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20> &
496                           , default_actions
497                         > const &
498                       , proto::empty_env
499                     >::result_type
500                 type;
501         };
502 
503 
504 
505 
506 
507 
508 
509         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
510         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
511         {
512             typedef
513                 typename phoenix::evaluator::
514                     impl<
515                         Expr const&
516                       , vector2<
517                             vector23<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21> &
518                           , default_actions
519                         > const &
520                       , proto::empty_env
521                     >::result_type
522                 type;
523         };
524 
525 
526 
527 
528 
529 
530 
531         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
532         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
533         {
534             typedef
535                 typename phoenix::evaluator::
536                     impl<
537                         Expr const&
538                       , vector2<
539                             vector24<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22> &
540                           , default_actions
541                         > const &
542                       , proto::empty_env
543                     >::result_type
544                 type;
545         };
546 
547 
548 
549 
550 
551 
552 
553         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
554         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
555         {
556             typedef
557                 typename phoenix::evaluator::
558                     impl<
559                         Expr const&
560                       , vector2<
561                             vector25<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23> &
562                           , default_actions
563                         > const &
564                       , proto::empty_env
565                     >::result_type
566                 type;
567         };
568 
569 
570 
571 
572 
573 
574 
575         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
576         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
577         {
578             typedef
579                 typename phoenix::evaluator::
580                     impl<
581                         Expr const&
582                       , vector2<
583                             vector26<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24> &
584                           , default_actions
585                         > const &
586                       , proto::empty_env
587                     >::result_type
588                 type;
589         };
590 
591 
592 
593 
594 
595 
596 
597         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
598         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
599         {
600             typedef
601                 typename phoenix::evaluator::
602                     impl<
603                         Expr const&
604                       , vector2<
605                             vector27<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25> &
606                           , default_actions
607                         > const &
608                       , proto::empty_env
609                     >::result_type
610                 type;
611         };
612 
613 
614 
615 
616 
617 
618 
619         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
620         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
621         {
622             typedef
623                 typename phoenix::evaluator::
624                     impl<
625                         Expr const&
626                       , vector2<
627                             vector28<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26> &
628                           , default_actions
629                         > const &
630                       , proto::empty_env
631                     >::result_type
632                 type;
633         };
634 
635 
636 
637 
638 
639 
640 
641         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
642         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
643         {
644             typedef
645                 typename phoenix::evaluator::
646                     impl<
647                         Expr const&
648                       , vector2<
649                             vector29<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27> &
650                           , default_actions
651                         > const &
652                       , proto::empty_env
653                     >::result_type
654                 type;
655         };
656 
657 
658 
659 
660 
661 
662 
663         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
664         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
665         {
666             typedef
667                 typename phoenix::evaluator::
668                     impl<
669                         Expr const&
670                       , vector2<
671                             vector30<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28> &
672                           , default_actions
673                         > const &
674                       , proto::empty_env
675                     >::result_type
676                 type;
677         };
678 
679 
680 
681 
682 
683 
684 
685         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
686         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
687         {
688             typedef
689                 typename phoenix::evaluator::
690                     impl<
691                         Expr const&
692                       , vector2<
693                             vector31<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29> &
694                           , default_actions
695                         > const &
696                       , proto::empty_env
697                     >::result_type
698                 type;
699         };
700 
701 
702 
703 
704 
705 
706 
707         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
708         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>
709         {
710             typedef
711                 typename phoenix::evaluator::
712                     impl<
713                         Expr const&
714                       , vector2<
715                             vector32<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30> &
716                           , default_actions
717                         > const &
718                       , proto::empty_env
719                     >::result_type
720                 type;
721         };
722 
723 
724 
725 
726 
727 
728 
729         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
730         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>
731         {
732             typedef
733                 typename phoenix::evaluator::
734                     impl<
735                         Expr const&
736                       , vector2<
737                             vector33<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31> &
738                           , default_actions
739                         > const &
740                       , proto::empty_env
741                     >::result_type
742                 type;
743         };
744 
745 
746 
747 
748 
749 
750 
751         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
752         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>
753         {
754             typedef
755                 typename phoenix::evaluator::
756                     impl<
757                         Expr const&
758                       , vector2<
759                             vector34<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32> &
760                           , default_actions
761                         > const &
762                       , proto::empty_env
763                     >::result_type
764                 type;
765         };
766 
767 
768 
769 
770 
771 
772 
773         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
774         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>
775         {
776             typedef
777                 typename phoenix::evaluator::
778                     impl<
779                         Expr const&
780                       , vector2<
781                             vector35<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33> &
782                           , default_actions
783                         > const &
784                       , proto::empty_env
785                     >::result_type
786                 type;
787         };
788 
789 
790 
791 
792 
793 
794 
795         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
796         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>
797         {
798             typedef
799                 typename phoenix::evaluator::
800                     impl<
801                         Expr const&
802                       , vector2<
803                             vector36<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34> &
804                           , default_actions
805                         > const &
806                       , proto::empty_env
807                     >::result_type
808                 type;
809         };
810 
811 
812 
813 
814 
815 
816 
817         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35>
818         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>
819         {
820             typedef
821                 typename phoenix::evaluator::
822                     impl<
823                         Expr const&
824                       , vector2<
825                             vector37<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35> &
826                           , default_actions
827                         > const &
828                       , proto::empty_env
829                     >::result_type
830                 type;
831         };
832 
833 
834 
835 
836 
837 
838 
839         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36>
840         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>
841         {
842             typedef
843                 typename phoenix::evaluator::
844                     impl<
845                         Expr const&
846                       , vector2<
847                             vector38<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36> &
848                           , default_actions
849                         > const &
850                       , proto::empty_env
851                     >::result_type
852                 type;
853         };
854 
855 
856 
857 
858 
859 
860 
861         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37>
862         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>
863         {
864             typedef
865                 typename phoenix::evaluator::
866                     impl<
867                         Expr const&
868                       , vector2<
869                             vector39<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37> &
870                           , default_actions
871                         > const &
872                       , proto::empty_env
873                     >::result_type
874                 type;
875         };
876 
877 
878 
879 
880 
881 
882 
883         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38>
884         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>
885         {
886             typedef
887                 typename phoenix::evaluator::
888                     impl<
889                         Expr const&
890                       , vector2<
891                             vector40<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38> &
892                           , default_actions
893                         > const &
894                       , proto::empty_env
895                     >::result_type
896                 type;
897         };
898 
899 
900 
901 
902 
903 
904 
905         template <typename Expr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39>
906         struct actor<Expr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>
907         {
908             typedef
909                 typename phoenix::evaluator::
910                     impl<
911                         Expr const&
912                       , vector2<
913                             vector41<const ::boost::phoenix::actor<Expr> *, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39> &
914                           , default_actions
915                         > const &
916                       , proto::empty_env
917                     >::result_type
918                 type;
919         };
920     }
921