]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/phoenix/core/detail/cpp03/preprocessed/function_eval_10.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / boost / phoenix / core / detail / cpp03 / preprocessed / function_eval_10.hpp
1 /*=============================================================================
2 Copyright (c) 2001-2007 Joel de Guzman
3
4 Distributed under the Boost Software License, Version 1.0. (See accompanying
5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 ==============================================================================*/
7
8
9
10
11
12
13
14
15 template <
16 typename This
17 , typename F
18 , typename A0
19 , typename Context
20 >
21 struct result<This(F, A0, Context)>
22 {
23 typedef typename
24 remove_reference<
25 typename boost::result_of<evaluator(F, Context)>::type
26 >::type
27 fn;
28 typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A0 , Context ) >::type >::type >::type a0;
29 typedef typename
30 boost::result_of<fn(a0)>::type
31 type;
32
33 };
34 template <typename F, typename A0, typename Context>
35 typename result<
36 function_eval(
37 F const &
38 , A0 &
39 , Context const &
40 )
41 >::type
42 operator()(F const & f, A0 & a0, Context const & ctx) const
43 {
44 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)));
45 }
46 template <typename F, typename A0, typename Context>
47 typename result<
48 function_eval(
49 F &
50 , A0 &
51 , Context const &
52 )
53 >::type
54 operator()(F & f, A0 & a0, Context const & ctx) const
55 {
56 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)));
57 }
58
59
60
61
62
63
64
65 template <
66 typename This
67 , typename F
68 , typename A0 , typename A1
69 , typename Context
70 >
71 struct result<This(F, A0 , A1, Context)>
72 {
73 typedef typename
74 remove_reference<
75 typename boost::result_of<evaluator(F, Context)>::type
76 >::type
77 fn;
78 typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A0 , Context ) >::type >::type >::type a0; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A1 , Context ) >::type >::type >::type a1;
79 typedef typename
80 boost::result_of<fn(a0 , a1)>::type
81 type;
82
83 };
84 template <typename F, typename A0 , typename A1, typename Context>
85 typename result<
86 function_eval(
87 F const &
88 , A0 & , A1 &
89 , Context const &
90 )
91 >::type
92 operator()(F const & f, A0 & a0 , A1 & a1, Context const & ctx) const
93 {
94 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a1, ctx)));
95 }
96 template <typename F, typename A0 , typename A1, typename Context>
97 typename result<
98 function_eval(
99 F &
100 , A0 & , A1 &
101 , Context const &
102 )
103 >::type
104 operator()(F & f, A0 & a0 , A1 & a1, Context const & ctx) const
105 {
106 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a1, ctx)));
107 }
108
109
110
111
112
113
114
115 template <
116 typename This
117 , typename F
118 , typename A0 , typename A1 , typename A2
119 , typename Context
120 >
121 struct result<This(F, A0 , A1 , A2, Context)>
122 {
123 typedef typename
124 remove_reference<
125 typename boost::result_of<evaluator(F, Context)>::type
126 >::type
127 fn;
128 typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A0 , Context ) >::type >::type >::type a0; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A1 , Context ) >::type >::type >::type a1; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A2 , Context ) >::type >::type >::type a2;
129 typedef typename
130 boost::result_of<fn(a0 , a1 , a2)>::type
131 type;
132
133 };
134 template <typename F, typename A0 , typename A1 , typename A2, typename Context>
135 typename result<
136 function_eval(
137 F const &
138 , A0 & , A1 & , A2 &
139 , Context const &
140 )
141 >::type
142 operator()(F const & f, A0 & a0 , A1 & a1 , A2 & a2, Context const & ctx) const
143 {
144 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a1, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a2, ctx)));
145 }
146 template <typename F, typename A0 , typename A1 , typename A2, typename Context>
147 typename result<
148 function_eval(
149 F &
150 , A0 & , A1 & , A2 &
151 , Context const &
152 )
153 >::type
154 operator()(F & f, A0 & a0 , A1 & a1 , A2 & a2, Context const & ctx) const
155 {
156 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a1, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a2, ctx)));
157 }
158
159
160
161
162
163
164
165 template <
166 typename This
167 , typename F
168 , typename A0 , typename A1 , typename A2 , typename A3
169 , typename Context
170 >
171 struct result<This(F, A0 , A1 , A2 , A3, Context)>
172 {
173 typedef typename
174 remove_reference<
175 typename boost::result_of<evaluator(F, Context)>::type
176 >::type
177 fn;
178 typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A0 , Context ) >::type >::type >::type a0; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A1 , Context ) >::type >::type >::type a1; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A2 , Context ) >::type >::type >::type a2; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A3 , Context ) >::type >::type >::type a3;
179 typedef typename
180 boost::result_of<fn(a0 , a1 , a2 , a3)>::type
181 type;
182
183 };
184 template <typename F, typename A0 , typename A1 , typename A2 , typename A3, typename Context>
185 typename result<
186 function_eval(
187 F const &
188 , A0 & , A1 & , A2 & , A3 &
189 , Context const &
190 )
191 >::type
192 operator()(F const & f, A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3, Context const & ctx) const
193 {
194 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a1, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a2, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a3, ctx)));
195 }
196 template <typename F, typename A0 , typename A1 , typename A2 , typename A3, typename Context>
197 typename result<
198 function_eval(
199 F &
200 , A0 & , A1 & , A2 & , A3 &
201 , Context const &
202 )
203 >::type
204 operator()(F & f, A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3, Context const & ctx) const
205 {
206 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a1, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a2, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a3, ctx)));
207 }
208
209
210
211
212
213
214
215 template <
216 typename This
217 , typename F
218 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4
219 , typename Context
220 >
221 struct result<This(F, A0 , A1 , A2 , A3 , A4, Context)>
222 {
223 typedef typename
224 remove_reference<
225 typename boost::result_of<evaluator(F, Context)>::type
226 >::type
227 fn;
228 typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A0 , Context ) >::type >::type >::type a0; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A1 , Context ) >::type >::type >::type a1; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A2 , Context ) >::type >::type >::type a2; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A3 , Context ) >::type >::type >::type a3; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A4 , Context ) >::type >::type >::type a4;
229 typedef typename
230 boost::result_of<fn(a0 , a1 , a2 , a3 , a4)>::type
231 type;
232
233 };
234 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4, typename Context>
235 typename result<
236 function_eval(
237 F const &
238 , A0 & , A1 & , A2 & , A3 & , A4 &
239 , Context const &
240 )
241 >::type
242 operator()(F const & f, A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4, Context const & ctx) const
243 {
244 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a1, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a2, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a3, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a4, ctx)));
245 }
246 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4, typename Context>
247 typename result<
248 function_eval(
249 F &
250 , A0 & , A1 & , A2 & , A3 & , A4 &
251 , Context const &
252 )
253 >::type
254 operator()(F & f, A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4, Context const & ctx) const
255 {
256 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a1, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a2, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a3, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a4, ctx)));
257 }
258
259
260
261
262
263
264
265 template <
266 typename This
267 , typename F
268 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5
269 , typename Context
270 >
271 struct result<This(F, A0 , A1 , A2 , A3 , A4 , A5, Context)>
272 {
273 typedef typename
274 remove_reference<
275 typename boost::result_of<evaluator(F, Context)>::type
276 >::type
277 fn;
278 typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A0 , Context ) >::type >::type >::type a0; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A1 , Context ) >::type >::type >::type a1; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A2 , Context ) >::type >::type >::type a2; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A3 , Context ) >::type >::type >::type a3; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A4 , Context ) >::type >::type >::type a4; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A5 , Context ) >::type >::type >::type a5;
279 typedef typename
280 boost::result_of<fn(a0 , a1 , a2 , a3 , a4 , a5)>::type
281 type;
282
283 };
284 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5, typename Context>
285 typename result<
286 function_eval(
287 F const &
288 , A0 & , A1 & , A2 & , A3 & , A4 & , A5 &
289 , Context const &
290 )
291 >::type
292 operator()(F const & f, A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5, Context const & ctx) const
293 {
294 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a1, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a2, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a3, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a4, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a5, ctx)));
295 }
296 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5, typename Context>
297 typename result<
298 function_eval(
299 F &
300 , A0 & , A1 & , A2 & , A3 & , A4 & , A5 &
301 , Context const &
302 )
303 >::type
304 operator()(F & f, A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5, Context const & ctx) const
305 {
306 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a1, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a2, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a3, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a4, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a5, ctx)));
307 }
308
309
310
311
312
313
314
315 template <
316 typename This
317 , typename F
318 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6
319 , typename Context
320 >
321 struct result<This(F, A0 , A1 , A2 , A3 , A4 , A5 , A6, Context)>
322 {
323 typedef typename
324 remove_reference<
325 typename boost::result_of<evaluator(F, Context)>::type
326 >::type
327 fn;
328 typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A0 , Context ) >::type >::type >::type a0; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A1 , Context ) >::type >::type >::type a1; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A2 , Context ) >::type >::type >::type a2; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A3 , Context ) >::type >::type >::type a3; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A4 , Context ) >::type >::type >::type a4; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A5 , Context ) >::type >::type >::type a5; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A6 , Context ) >::type >::type >::type a6;
329 typedef typename
330 boost::result_of<fn(a0 , a1 , a2 , a3 , a4 , a5 , a6)>::type
331 type;
332
333 };
334 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6, typename Context>
335 typename result<
336 function_eval(
337 F const &
338 , A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &
339 , Context const &
340 )
341 >::type
342 operator()(F const & f, A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6, Context const & ctx) const
343 {
344 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a1, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a2, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a3, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a4, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a5, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a6, ctx)));
345 }
346 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6, typename Context>
347 typename result<
348 function_eval(
349 F &
350 , A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &
351 , Context const &
352 )
353 >::type
354 operator()(F & f, A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6, Context const & ctx) const
355 {
356 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a1, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a2, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a3, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a4, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a5, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a6, ctx)));
357 }
358
359
360
361
362
363
364
365 template <
366 typename This
367 , typename F
368 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7
369 , typename Context
370 >
371 struct result<This(F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7, Context)>
372 {
373 typedef typename
374 remove_reference<
375 typename boost::result_of<evaluator(F, Context)>::type
376 >::type
377 fn;
378 typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A0 , Context ) >::type >::type >::type a0; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A1 , Context ) >::type >::type >::type a1; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A2 , Context ) >::type >::type >::type a2; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A3 , Context ) >::type >::type >::type a3; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A4 , Context ) >::type >::type >::type a4; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A5 , Context ) >::type >::type >::type a5; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A6 , Context ) >::type >::type >::type a6; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A7 , Context ) >::type >::type >::type a7;
379 typedef typename
380 boost::result_of<fn(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7)>::type
381 type;
382
383 };
384 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7, typename Context>
385 typename result<
386 function_eval(
387 F const &
388 , A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &
389 , Context const &
390 )
391 >::type
392 operator()(F const & f, A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7, Context const & ctx) const
393 {
394 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a1, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a2, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a3, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a4, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a5, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a6, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a7, ctx)));
395 }
396 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7, typename Context>
397 typename result<
398 function_eval(
399 F &
400 , A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &
401 , Context const &
402 )
403 >::type
404 operator()(F & f, A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7, Context const & ctx) const
405 {
406 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a1, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a2, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a3, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a4, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a5, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a6, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a7, ctx)));
407 }
408
409
410
411
412
413
414
415 template <
416 typename This
417 , typename F
418 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8
419 , typename Context
420 >
421 struct result<This(F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8, Context)>
422 {
423 typedef typename
424 remove_reference<
425 typename boost::result_of<evaluator(F, Context)>::type
426 >::type
427 fn;
428 typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A0 , Context ) >::type >::type >::type a0; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A1 , Context ) >::type >::type >::type a1; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A2 , Context ) >::type >::type >::type a2; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A3 , Context ) >::type >::type >::type a3; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A4 , Context ) >::type >::type >::type a4; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A5 , Context ) >::type >::type >::type a5; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A6 , Context ) >::type >::type >::type a6; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A7 , Context ) >::type >::type >::type a7; typedef typename boost::add_reference< typename boost::add_const< typename boost::result_of< boost::phoenix::evaluator( A8 , Context ) >::type >::type >::type a8;
429 typedef typename
430 boost::result_of<fn(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8)>::type
431 type;
432
433 };
434 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8, typename Context>
435 typename result<
436 function_eval(
437 F const &
438 , A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &
439 , Context const &
440 )
441 >::type
442 operator()(F const & f, A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8, Context const & ctx) const
443 {
444 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a1, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a2, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a3, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a4, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a5, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a6, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a7, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a8, ctx)));
445 }
446 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8, typename Context>
447 typename result<
448 function_eval(
449 F &
450 , A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &
451 , Context const &
452 )
453 >::type
454 operator()(F & f, A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8, Context const & ctx) const
455 {
456 return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a1, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a2, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a3, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a4, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a5, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a6, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a7, ctx)) , help_rvalue_deduction(boost::phoenix::eval(a8, ctx)));
457 }