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