]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/phoenix/include/boost/phoenix/core/detail/cpp03/preprocessed/call_20.hpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / phoenix / include / boost / phoenix / core / detail / cpp03 / preprocessed / call_20.hpp
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
9
10
11
12
13
14
15
16
17 template <typename Fun, typename Expr, typename State, typename Data>
18 struct call_impl<Fun, Expr, State, Data, 1>
19 : proto::transform_impl<Expr, State, Data>
20 {
21 typedef
22 typename boost::phoenix::result_of::context<State, Data>::type
23 context_type;
24 typedef typename proto::result_of::child_c<Expr, 0>::type A0;
25 typedef
26 typename boost::result_of<
27 Fun(A0, context_type)
28 >::type
29 result_type;
30 result_type operator()(
31 typename call_impl::expr_param e
32 , typename call_impl::state_param s
33 , typename call_impl::data_param d
34 ) const
35 {
36 return
37 Fun()(
38 proto::child_c< 0>(e)
39 , boost::phoenix::context(s, d)
40 );
41 }
42 };
43
44
45
46
47
48
49
50
51 template <typename Fun, typename Expr, typename State, typename Data>
52 struct call_impl<Fun, Expr, State, Data, 2>
53 : proto::transform_impl<Expr, State, Data>
54 {
55 typedef
56 typename boost::phoenix::result_of::context<State, Data>::type
57 context_type;
58 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1;
59 typedef
60 typename boost::result_of<
61 Fun(A0 , A1, context_type)
62 >::type
63 result_type;
64 result_type operator()(
65 typename call_impl::expr_param e
66 , typename call_impl::state_param s
67 , typename call_impl::data_param d
68 ) const
69 {
70 return
71 Fun()(
72 proto::child_c< 0>(e) , proto::child_c< 1>(e)
73 , boost::phoenix::context(s, d)
74 );
75 }
76 };
77
78
79
80
81
82
83
84
85 template <typename Fun, typename Expr, typename State, typename Data>
86 struct call_impl<Fun, Expr, State, Data, 3>
87 : proto::transform_impl<Expr, State, Data>
88 {
89 typedef
90 typename boost::phoenix::result_of::context<State, Data>::type
91 context_type;
92 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2;
93 typedef
94 typename boost::result_of<
95 Fun(A0 , A1 , A2, context_type)
96 >::type
97 result_type;
98 result_type operator()(
99 typename call_impl::expr_param e
100 , typename call_impl::state_param s
101 , typename call_impl::data_param d
102 ) const
103 {
104 return
105 Fun()(
106 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e)
107 , boost::phoenix::context(s, d)
108 );
109 }
110 };
111
112
113
114
115
116
117
118
119 template <typename Fun, typename Expr, typename State, typename Data>
120 struct call_impl<Fun, Expr, State, Data, 4>
121 : proto::transform_impl<Expr, State, Data>
122 {
123 typedef
124 typename boost::phoenix::result_of::context<State, Data>::type
125 context_type;
126 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3;
127 typedef
128 typename boost::result_of<
129 Fun(A0 , A1 , A2 , A3, context_type)
130 >::type
131 result_type;
132 result_type operator()(
133 typename call_impl::expr_param e
134 , typename call_impl::state_param s
135 , typename call_impl::data_param d
136 ) const
137 {
138 return
139 Fun()(
140 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e)
141 , boost::phoenix::context(s, d)
142 );
143 }
144 };
145
146
147
148
149
150
151
152
153 template <typename Fun, typename Expr, typename State, typename Data>
154 struct call_impl<Fun, Expr, State, Data, 5>
155 : proto::transform_impl<Expr, State, Data>
156 {
157 typedef
158 typename boost::phoenix::result_of::context<State, Data>::type
159 context_type;
160 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4;
161 typedef
162 typename boost::result_of<
163 Fun(A0 , A1 , A2 , A3 , A4, context_type)
164 >::type
165 result_type;
166 result_type operator()(
167 typename call_impl::expr_param e
168 , typename call_impl::state_param s
169 , typename call_impl::data_param d
170 ) const
171 {
172 return
173 Fun()(
174 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e)
175 , boost::phoenix::context(s, d)
176 );
177 }
178 };
179
180
181
182
183
184
185
186
187 template <typename Fun, typename Expr, typename State, typename Data>
188 struct call_impl<Fun, Expr, State, Data, 6>
189 : proto::transform_impl<Expr, State, Data>
190 {
191 typedef
192 typename boost::phoenix::result_of::context<State, Data>::type
193 context_type;
194 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5;
195 typedef
196 typename boost::result_of<
197 Fun(A0 , A1 , A2 , A3 , A4 , A5, context_type)
198 >::type
199 result_type;
200 result_type operator()(
201 typename call_impl::expr_param e
202 , typename call_impl::state_param s
203 , typename call_impl::data_param d
204 ) const
205 {
206 return
207 Fun()(
208 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e)
209 , boost::phoenix::context(s, d)
210 );
211 }
212 };
213
214
215
216
217
218
219
220
221 template <typename Fun, typename Expr, typename State, typename Data>
222 struct call_impl<Fun, Expr, State, Data, 7>
223 : proto::transform_impl<Expr, State, Data>
224 {
225 typedef
226 typename boost::phoenix::result_of::context<State, Data>::type
227 context_type;
228 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6;
229 typedef
230 typename boost::result_of<
231 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6, context_type)
232 >::type
233 result_type;
234 result_type operator()(
235 typename call_impl::expr_param e
236 , typename call_impl::state_param s
237 , typename call_impl::data_param d
238 ) const
239 {
240 return
241 Fun()(
242 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e)
243 , boost::phoenix::context(s, d)
244 );
245 }
246 };
247
248
249
250
251
252
253
254
255 template <typename Fun, typename Expr, typename State, typename Data>
256 struct call_impl<Fun, Expr, State, Data, 8>
257 : proto::transform_impl<Expr, State, Data>
258 {
259 typedef
260 typename boost::phoenix::result_of::context<State, Data>::type
261 context_type;
262 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7;
263 typedef
264 typename boost::result_of<
265 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7, context_type)
266 >::type
267 result_type;
268 result_type operator()(
269 typename call_impl::expr_param e
270 , typename call_impl::state_param s
271 , typename call_impl::data_param d
272 ) const
273 {
274 return
275 Fun()(
276 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e)
277 , boost::phoenix::context(s, d)
278 );
279 }
280 };
281
282
283
284
285
286
287
288
289 template <typename Fun, typename Expr, typename State, typename Data>
290 struct call_impl<Fun, Expr, State, Data, 9>
291 : proto::transform_impl<Expr, State, Data>
292 {
293 typedef
294 typename boost::phoenix::result_of::context<State, Data>::type
295 context_type;
296 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8;
297 typedef
298 typename boost::result_of<
299 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8, context_type)
300 >::type
301 result_type;
302 result_type operator()(
303 typename call_impl::expr_param e
304 , typename call_impl::state_param s
305 , typename call_impl::data_param d
306 ) const
307 {
308 return
309 Fun()(
310 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e)
311 , boost::phoenix::context(s, d)
312 );
313 }
314 };
315
316
317
318
319
320
321
322
323 template <typename Fun, typename Expr, typename State, typename Data>
324 struct call_impl<Fun, Expr, State, Data, 10>
325 : proto::transform_impl<Expr, State, Data>
326 {
327 typedef
328 typename boost::phoenix::result_of::context<State, Data>::type
329 context_type;
330 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9;
331 typedef
332 typename boost::result_of<
333 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9, context_type)
334 >::type
335 result_type;
336 result_type operator()(
337 typename call_impl::expr_param e
338 , typename call_impl::state_param s
339 , typename call_impl::data_param d
340 ) const
341 {
342 return
343 Fun()(
344 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e)
345 , boost::phoenix::context(s, d)
346 );
347 }
348 };
349
350
351
352
353
354
355
356
357 template <typename Fun, typename Expr, typename State, typename Data>
358 struct call_impl<Fun, Expr, State, Data, 11>
359 : proto::transform_impl<Expr, State, Data>
360 {
361 typedef
362 typename boost::phoenix::result_of::context<State, Data>::type
363 context_type;
364 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10;
365 typedef
366 typename boost::result_of<
367 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10, context_type)
368 >::type
369 result_type;
370 result_type operator()(
371 typename call_impl::expr_param e
372 , typename call_impl::state_param s
373 , typename call_impl::data_param d
374 ) const
375 {
376 return
377 Fun()(
378 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e)
379 , boost::phoenix::context(s, d)
380 );
381 }
382 };
383
384
385
386
387
388
389
390
391 template <typename Fun, typename Expr, typename State, typename Data>
392 struct call_impl<Fun, Expr, State, Data, 12>
393 : proto::transform_impl<Expr, State, Data>
394 {
395 typedef
396 typename boost::phoenix::result_of::context<State, Data>::type
397 context_type;
398 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11;
399 typedef
400 typename boost::result_of<
401 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11, context_type)
402 >::type
403 result_type;
404 result_type operator()(
405 typename call_impl::expr_param e
406 , typename call_impl::state_param s
407 , typename call_impl::data_param d
408 ) const
409 {
410 return
411 Fun()(
412 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e)
413 , boost::phoenix::context(s, d)
414 );
415 }
416 };
417
418
419
420
421
422
423
424
425 template <typename Fun, typename Expr, typename State, typename Data>
426 struct call_impl<Fun, Expr, State, Data, 13>
427 : proto::transform_impl<Expr, State, Data>
428 {
429 typedef
430 typename boost::phoenix::result_of::context<State, Data>::type
431 context_type;
432 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12;
433 typedef
434 typename boost::result_of<
435 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12, context_type)
436 >::type
437 result_type;
438 result_type operator()(
439 typename call_impl::expr_param e
440 , typename call_impl::state_param s
441 , typename call_impl::data_param d
442 ) const
443 {
444 return
445 Fun()(
446 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e)
447 , boost::phoenix::context(s, d)
448 );
449 }
450 };
451
452
453
454
455
456
457
458
459 template <typename Fun, typename Expr, typename State, typename Data>
460 struct call_impl<Fun, Expr, State, Data, 14>
461 : proto::transform_impl<Expr, State, Data>
462 {
463 typedef
464 typename boost::phoenix::result_of::context<State, Data>::type
465 context_type;
466 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13;
467 typedef
468 typename boost::result_of<
469 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13, context_type)
470 >::type
471 result_type;
472 result_type operator()(
473 typename call_impl::expr_param e
474 , typename call_impl::state_param s
475 , typename call_impl::data_param d
476 ) const
477 {
478 return
479 Fun()(
480 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e)
481 , boost::phoenix::context(s, d)
482 );
483 }
484 };
485
486
487
488
489
490
491
492
493 template <typename Fun, typename Expr, typename State, typename Data>
494 struct call_impl<Fun, Expr, State, Data, 15>
495 : proto::transform_impl<Expr, State, Data>
496 {
497 typedef
498 typename boost::phoenix::result_of::context<State, Data>::type
499 context_type;
500 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14;
501 typedef
502 typename boost::result_of<
503 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14, context_type)
504 >::type
505 result_type;
506 result_type operator()(
507 typename call_impl::expr_param e
508 , typename call_impl::state_param s
509 , typename call_impl::data_param d
510 ) const
511 {
512 return
513 Fun()(
514 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e)
515 , boost::phoenix::context(s, d)
516 );
517 }
518 };
519
520
521
522
523
524
525
526
527 template <typename Fun, typename Expr, typename State, typename Data>
528 struct call_impl<Fun, Expr, State, Data, 16>
529 : proto::transform_impl<Expr, State, Data>
530 {
531 typedef
532 typename boost::phoenix::result_of::context<State, Data>::type
533 context_type;
534 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14; typedef typename proto::result_of::child_c<Expr, 15>::type A15;
535 typedef
536 typename boost::result_of<
537 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15, context_type)
538 >::type
539 result_type;
540 result_type operator()(
541 typename call_impl::expr_param e
542 , typename call_impl::state_param s
543 , typename call_impl::data_param d
544 ) const
545 {
546 return
547 Fun()(
548 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e)
549 , boost::phoenix::context(s, d)
550 );
551 }
552 };
553
554
555
556
557
558
559
560
561 template <typename Fun, typename Expr, typename State, typename Data>
562 struct call_impl<Fun, Expr, State, Data, 17>
563 : proto::transform_impl<Expr, State, Data>
564 {
565 typedef
566 typename boost::phoenix::result_of::context<State, Data>::type
567 context_type;
568 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14; typedef typename proto::result_of::child_c<Expr, 15>::type A15; typedef typename proto::result_of::child_c<Expr, 16>::type A16;
569 typedef
570 typename boost::result_of<
571 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16, context_type)
572 >::type
573 result_type;
574 result_type operator()(
575 typename call_impl::expr_param e
576 , typename call_impl::state_param s
577 , typename call_impl::data_param d
578 ) const
579 {
580 return
581 Fun()(
582 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e)
583 , boost::phoenix::context(s, d)
584 );
585 }
586 };
587
588
589
590
591
592
593
594
595 template <typename Fun, typename Expr, typename State, typename Data>
596 struct call_impl<Fun, Expr, State, Data, 18>
597 : proto::transform_impl<Expr, State, Data>
598 {
599 typedef
600 typename boost::phoenix::result_of::context<State, Data>::type
601 context_type;
602 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14; typedef typename proto::result_of::child_c<Expr, 15>::type A15; typedef typename proto::result_of::child_c<Expr, 16>::type A16; typedef typename proto::result_of::child_c<Expr, 17>::type A17;
603 typedef
604 typename boost::result_of<
605 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17, context_type)
606 >::type
607 result_type;
608 result_type operator()(
609 typename call_impl::expr_param e
610 , typename call_impl::state_param s
611 , typename call_impl::data_param d
612 ) const
613 {
614 return
615 Fun()(
616 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e)
617 , boost::phoenix::context(s, d)
618 );
619 }
620 };
621
622
623
624
625
626
627
628
629 template <typename Fun, typename Expr, typename State, typename Data>
630 struct call_impl<Fun, Expr, State, Data, 19>
631 : proto::transform_impl<Expr, State, Data>
632 {
633 typedef
634 typename boost::phoenix::result_of::context<State, Data>::type
635 context_type;
636 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14; typedef typename proto::result_of::child_c<Expr, 15>::type A15; typedef typename proto::result_of::child_c<Expr, 16>::type A16; typedef typename proto::result_of::child_c<Expr, 17>::type A17; typedef typename proto::result_of::child_c<Expr, 18>::type A18;
637 typedef
638 typename boost::result_of<
639 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18, context_type)
640 >::type
641 result_type;
642 result_type operator()(
643 typename call_impl::expr_param e
644 , typename call_impl::state_param s
645 , typename call_impl::data_param d
646 ) const
647 {
648 return
649 Fun()(
650 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e)
651 , boost::phoenix::context(s, d)
652 );
653 }
654 };
655
656
657
658
659
660
661
662
663 template <typename Fun, typename Expr, typename State, typename Data>
664 struct call_impl<Fun, Expr, State, Data, 20>
665 : proto::transform_impl<Expr, State, Data>
666 {
667 typedef
668 typename boost::phoenix::result_of::context<State, Data>::type
669 context_type;
670 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14; typedef typename proto::result_of::child_c<Expr, 15>::type A15; typedef typename proto::result_of::child_c<Expr, 16>::type A16; typedef typename proto::result_of::child_c<Expr, 17>::type A17; typedef typename proto::result_of::child_c<Expr, 18>::type A18; typedef typename proto::result_of::child_c<Expr, 19>::type A19;
671 typedef
672 typename boost::result_of<
673 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19, context_type)
674 >::type
675 result_type;
676 result_type operator()(
677 typename call_impl::expr_param e
678 , typename call_impl::state_param s
679 , typename call_impl::data_param d
680 ) const
681 {
682 return
683 Fun()(
684 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e)
685 , boost::phoenix::context(s, d)
686 );
687 }
688 };