]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/phoenix/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_member_function_20.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / phoenix / include / boost / phoenix / bind / detail / cpp03 / preprocessed / bind_member_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 ClassT
17 , typename T0
18 , typename ClassA
19 , typename A0
20 >
21 inline
22 typename detail::expression::function_eval<
23 detail::member_function_ptr<
24 1
25 , RT
26 , RT(ClassT::*)(T0)
27 >
28 , ClassA
29 , A0
30 >::type const
31 bind(
32 RT(ClassT::*f)(T0)
33 , ClassA const & obj
34 , A0 const& a0
35 )
36 {
37 typedef detail::member_function_ptr<
38 1
39 , RT
40 , RT(ClassT::*)(T0)
41 > fp_type;
42 return
43 detail::expression::function_eval<
44 fp_type
45 , ClassA
46 , A0
47 >::make(
48 fp_type(f)
49 , obj
50 , a0
51 );
52 }
53 template <
54 typename RT
55 , typename ClassT
56 , typename T0
57 , typename ClassA
58 , typename A0
59 >
60 inline
61 typename detail::expression::function_eval<
62 detail::member_function_ptr<
63 1
64 , RT
65 , RT(ClassT::*)(T0) const
66 >
67 , ClassA
68 , A0
69 >::type const
70 bind(
71 RT(ClassT::*f)(T0) const
72 , ClassA const & obj
73 , A0 const& a0
74 )
75 {
76 typedef detail::member_function_ptr<
77 1
78 , RT
79 , RT(ClassT::*)(T0) const
80 > fp_type;
81 return
82 detail::expression::function_eval<
83 fp_type
84 , ClassA
85 , A0
86 >::make(
87 fp_type(f)
88 , obj
89 , a0
90 );
91 }
92 template <
93 typename RT
94 , typename ClassT
95 , typename T0
96 , typename A0
97 >
98 inline
99 typename detail::expression::function_eval<
100 detail::member_function_ptr<
101 1
102 , RT
103 , RT(ClassT::*)(T0)
104 >
105 , ClassT
106 , A0
107 >::type const
108 bind(
109 RT(ClassT::*f)(T0)
110 , ClassT & obj
111 , A0 const& a0
112 )
113 {
114 typedef detail::member_function_ptr<
115 1
116 , RT
117 , RT(ClassT::*)(T0)
118 > fp_type;
119 return
120 detail::expression::function_eval<
121 fp_type
122 , ClassT
123 , A0
124 >::make(
125 fp_type(f)
126 , obj
127 , a0
128 );
129 }
130
131
132
133
134
135
136
137 template <
138 typename RT
139 , typename ClassT
140 , typename T0 , typename T1
141 , typename ClassA
142 , typename A0 , typename A1
143 >
144 inline
145 typename detail::expression::function_eval<
146 detail::member_function_ptr<
147 2
148 , RT
149 , RT(ClassT::*)(T0 , T1)
150 >
151 , ClassA
152 , A0 , A1
153 >::type const
154 bind(
155 RT(ClassT::*f)(T0 , T1)
156 , ClassA const & obj
157 , A0 const& a0 , A1 const& a1
158 )
159 {
160 typedef detail::member_function_ptr<
161 2
162 , RT
163 , RT(ClassT::*)(T0 , T1)
164 > fp_type;
165 return
166 detail::expression::function_eval<
167 fp_type
168 , ClassA
169 , A0 , A1
170 >::make(
171 fp_type(f)
172 , obj
173 , a0 , a1
174 );
175 }
176 template <
177 typename RT
178 , typename ClassT
179 , typename T0 , typename T1
180 , typename ClassA
181 , typename A0 , typename A1
182 >
183 inline
184 typename detail::expression::function_eval<
185 detail::member_function_ptr<
186 2
187 , RT
188 , RT(ClassT::*)(T0 , T1) const
189 >
190 , ClassA
191 , A0 , A1
192 >::type const
193 bind(
194 RT(ClassT::*f)(T0 , T1) const
195 , ClassA const & obj
196 , A0 const& a0 , A1 const& a1
197 )
198 {
199 typedef detail::member_function_ptr<
200 2
201 , RT
202 , RT(ClassT::*)(T0 , T1) const
203 > fp_type;
204 return
205 detail::expression::function_eval<
206 fp_type
207 , ClassA
208 , A0 , A1
209 >::make(
210 fp_type(f)
211 , obj
212 , a0 , a1
213 );
214 }
215 template <
216 typename RT
217 , typename ClassT
218 , typename T0 , typename T1
219 , typename A0 , typename A1
220 >
221 inline
222 typename detail::expression::function_eval<
223 detail::member_function_ptr<
224 2
225 , RT
226 , RT(ClassT::*)(T0 , T1)
227 >
228 , ClassT
229 , A0 , A1
230 >::type const
231 bind(
232 RT(ClassT::*f)(T0 , T1)
233 , ClassT & obj
234 , A0 const& a0 , A1 const& a1
235 )
236 {
237 typedef detail::member_function_ptr<
238 2
239 , RT
240 , RT(ClassT::*)(T0 , T1)
241 > fp_type;
242 return
243 detail::expression::function_eval<
244 fp_type
245 , ClassT
246 , A0 , A1
247 >::make(
248 fp_type(f)
249 , obj
250 , a0 , a1
251 );
252 }
253
254
255
256
257
258
259
260 template <
261 typename RT
262 , typename ClassT
263 , typename T0 , typename T1 , typename T2
264 , typename ClassA
265 , typename A0 , typename A1 , typename A2
266 >
267 inline
268 typename detail::expression::function_eval<
269 detail::member_function_ptr<
270 3
271 , RT
272 , RT(ClassT::*)(T0 , T1 , T2)
273 >
274 , ClassA
275 , A0 , A1 , A2
276 >::type const
277 bind(
278 RT(ClassT::*f)(T0 , T1 , T2)
279 , ClassA const & obj
280 , A0 const& a0 , A1 const& a1 , A2 const& a2
281 )
282 {
283 typedef detail::member_function_ptr<
284 3
285 , RT
286 , RT(ClassT::*)(T0 , T1 , T2)
287 > fp_type;
288 return
289 detail::expression::function_eval<
290 fp_type
291 , ClassA
292 , A0 , A1 , A2
293 >::make(
294 fp_type(f)
295 , obj
296 , a0 , a1 , a2
297 );
298 }
299 template <
300 typename RT
301 , typename ClassT
302 , typename T0 , typename T1 , typename T2
303 , typename ClassA
304 , typename A0 , typename A1 , typename A2
305 >
306 inline
307 typename detail::expression::function_eval<
308 detail::member_function_ptr<
309 3
310 , RT
311 , RT(ClassT::*)(T0 , T1 , T2) const
312 >
313 , ClassA
314 , A0 , A1 , A2
315 >::type const
316 bind(
317 RT(ClassT::*f)(T0 , T1 , T2) const
318 , ClassA const & obj
319 , A0 const& a0 , A1 const& a1 , A2 const& a2
320 )
321 {
322 typedef detail::member_function_ptr<
323 3
324 , RT
325 , RT(ClassT::*)(T0 , T1 , T2) const
326 > fp_type;
327 return
328 detail::expression::function_eval<
329 fp_type
330 , ClassA
331 , A0 , A1 , A2
332 >::make(
333 fp_type(f)
334 , obj
335 , a0 , a1 , a2
336 );
337 }
338 template <
339 typename RT
340 , typename ClassT
341 , typename T0 , typename T1 , typename T2
342 , typename A0 , typename A1 , typename A2
343 >
344 inline
345 typename detail::expression::function_eval<
346 detail::member_function_ptr<
347 3
348 , RT
349 , RT(ClassT::*)(T0 , T1 , T2)
350 >
351 , ClassT
352 , A0 , A1 , A2
353 >::type const
354 bind(
355 RT(ClassT::*f)(T0 , T1 , T2)
356 , ClassT & obj
357 , A0 const& a0 , A1 const& a1 , A2 const& a2
358 )
359 {
360 typedef detail::member_function_ptr<
361 3
362 , RT
363 , RT(ClassT::*)(T0 , T1 , T2)
364 > fp_type;
365 return
366 detail::expression::function_eval<
367 fp_type
368 , ClassT
369 , A0 , A1 , A2
370 >::make(
371 fp_type(f)
372 , obj
373 , a0 , a1 , a2
374 );
375 }
376
377
378
379
380
381
382
383 template <
384 typename RT
385 , typename ClassT
386 , typename T0 , typename T1 , typename T2 , typename T3
387 , typename ClassA
388 , typename A0 , typename A1 , typename A2 , typename A3
389 >
390 inline
391 typename detail::expression::function_eval<
392 detail::member_function_ptr<
393 4
394 , RT
395 , RT(ClassT::*)(T0 , T1 , T2 , T3)
396 >
397 , ClassA
398 , A0 , A1 , A2 , A3
399 >::type const
400 bind(
401 RT(ClassT::*f)(T0 , T1 , T2 , T3)
402 , ClassA const & obj
403 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3
404 )
405 {
406 typedef detail::member_function_ptr<
407 4
408 , RT
409 , RT(ClassT::*)(T0 , T1 , T2 , T3)
410 > fp_type;
411 return
412 detail::expression::function_eval<
413 fp_type
414 , ClassA
415 , A0 , A1 , A2 , A3
416 >::make(
417 fp_type(f)
418 , obj
419 , a0 , a1 , a2 , a3
420 );
421 }
422 template <
423 typename RT
424 , typename ClassT
425 , typename T0 , typename T1 , typename T2 , typename T3
426 , typename ClassA
427 , typename A0 , typename A1 , typename A2 , typename A3
428 >
429 inline
430 typename detail::expression::function_eval<
431 detail::member_function_ptr<
432 4
433 , RT
434 , RT(ClassT::*)(T0 , T1 , T2 , T3) const
435 >
436 , ClassA
437 , A0 , A1 , A2 , A3
438 >::type const
439 bind(
440 RT(ClassT::*f)(T0 , T1 , T2 , T3) const
441 , ClassA const & obj
442 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3
443 )
444 {
445 typedef detail::member_function_ptr<
446 4
447 , RT
448 , RT(ClassT::*)(T0 , T1 , T2 , T3) const
449 > fp_type;
450 return
451 detail::expression::function_eval<
452 fp_type
453 , ClassA
454 , A0 , A1 , A2 , A3
455 >::make(
456 fp_type(f)
457 , obj
458 , a0 , a1 , a2 , a3
459 );
460 }
461 template <
462 typename RT
463 , typename ClassT
464 , typename T0 , typename T1 , typename T2 , typename T3
465 , typename A0 , typename A1 , typename A2 , typename A3
466 >
467 inline
468 typename detail::expression::function_eval<
469 detail::member_function_ptr<
470 4
471 , RT
472 , RT(ClassT::*)(T0 , T1 , T2 , T3)
473 >
474 , ClassT
475 , A0 , A1 , A2 , A3
476 >::type const
477 bind(
478 RT(ClassT::*f)(T0 , T1 , T2 , T3)
479 , ClassT & obj
480 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3
481 )
482 {
483 typedef detail::member_function_ptr<
484 4
485 , RT
486 , RT(ClassT::*)(T0 , T1 , T2 , T3)
487 > fp_type;
488 return
489 detail::expression::function_eval<
490 fp_type
491 , ClassT
492 , A0 , A1 , A2 , A3
493 >::make(
494 fp_type(f)
495 , obj
496 , a0 , a1 , a2 , a3
497 );
498 }
499
500
501
502
503
504
505
506 template <
507 typename RT
508 , typename ClassT
509 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4
510 , typename ClassA
511 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4
512 >
513 inline
514 typename detail::expression::function_eval<
515 detail::member_function_ptr<
516 5
517 , RT
518 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4)
519 >
520 , ClassA
521 , A0 , A1 , A2 , A3 , A4
522 >::type const
523 bind(
524 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4)
525 , ClassA const & obj
526 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4
527 )
528 {
529 typedef detail::member_function_ptr<
530 5
531 , RT
532 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4)
533 > fp_type;
534 return
535 detail::expression::function_eval<
536 fp_type
537 , ClassA
538 , A0 , A1 , A2 , A3 , A4
539 >::make(
540 fp_type(f)
541 , obj
542 , a0 , a1 , a2 , a3 , a4
543 );
544 }
545 template <
546 typename RT
547 , typename ClassT
548 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4
549 , typename ClassA
550 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4
551 >
552 inline
553 typename detail::expression::function_eval<
554 detail::member_function_ptr<
555 5
556 , RT
557 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4) const
558 >
559 , ClassA
560 , A0 , A1 , A2 , A3 , A4
561 >::type const
562 bind(
563 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4) const
564 , ClassA const & obj
565 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4
566 )
567 {
568 typedef detail::member_function_ptr<
569 5
570 , RT
571 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4) const
572 > fp_type;
573 return
574 detail::expression::function_eval<
575 fp_type
576 , ClassA
577 , A0 , A1 , A2 , A3 , A4
578 >::make(
579 fp_type(f)
580 , obj
581 , a0 , a1 , a2 , a3 , a4
582 );
583 }
584 template <
585 typename RT
586 , typename ClassT
587 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4
588 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4
589 >
590 inline
591 typename detail::expression::function_eval<
592 detail::member_function_ptr<
593 5
594 , RT
595 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4)
596 >
597 , ClassT
598 , A0 , A1 , A2 , A3 , A4
599 >::type const
600 bind(
601 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4)
602 , ClassT & obj
603 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4
604 )
605 {
606 typedef detail::member_function_ptr<
607 5
608 , RT
609 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4)
610 > fp_type;
611 return
612 detail::expression::function_eval<
613 fp_type
614 , ClassT
615 , A0 , A1 , A2 , A3 , A4
616 >::make(
617 fp_type(f)
618 , obj
619 , a0 , a1 , a2 , a3 , a4
620 );
621 }
622
623
624
625
626
627
628
629 template <
630 typename RT
631 , typename ClassT
632 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
633 , typename ClassA
634 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5
635 >
636 inline
637 typename detail::expression::function_eval<
638 detail::member_function_ptr<
639 6
640 , RT
641 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5)
642 >
643 , ClassA
644 , A0 , A1 , A2 , A3 , A4 , A5
645 >::type const
646 bind(
647 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5)
648 , ClassA const & obj
649 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5
650 )
651 {
652 typedef detail::member_function_ptr<
653 6
654 , RT
655 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5)
656 > fp_type;
657 return
658 detail::expression::function_eval<
659 fp_type
660 , ClassA
661 , A0 , A1 , A2 , A3 , A4 , A5
662 >::make(
663 fp_type(f)
664 , obj
665 , a0 , a1 , a2 , a3 , a4 , a5
666 );
667 }
668 template <
669 typename RT
670 , typename ClassT
671 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
672 , typename ClassA
673 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5
674 >
675 inline
676 typename detail::expression::function_eval<
677 detail::member_function_ptr<
678 6
679 , RT
680 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5) const
681 >
682 , ClassA
683 , A0 , A1 , A2 , A3 , A4 , A5
684 >::type const
685 bind(
686 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5) const
687 , ClassA const & obj
688 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5
689 )
690 {
691 typedef detail::member_function_ptr<
692 6
693 , RT
694 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5) const
695 > fp_type;
696 return
697 detail::expression::function_eval<
698 fp_type
699 , ClassA
700 , A0 , A1 , A2 , A3 , A4 , A5
701 >::make(
702 fp_type(f)
703 , obj
704 , a0 , a1 , a2 , a3 , a4 , a5
705 );
706 }
707 template <
708 typename RT
709 , typename ClassT
710 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
711 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5
712 >
713 inline
714 typename detail::expression::function_eval<
715 detail::member_function_ptr<
716 6
717 , RT
718 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5)
719 >
720 , ClassT
721 , A0 , A1 , A2 , A3 , A4 , A5
722 >::type const
723 bind(
724 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5)
725 , ClassT & obj
726 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5
727 )
728 {
729 typedef detail::member_function_ptr<
730 6
731 , RT
732 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5)
733 > fp_type;
734 return
735 detail::expression::function_eval<
736 fp_type
737 , ClassT
738 , A0 , A1 , A2 , A3 , A4 , A5
739 >::make(
740 fp_type(f)
741 , obj
742 , a0 , a1 , a2 , a3 , a4 , a5
743 );
744 }
745
746
747
748
749
750
751
752 template <
753 typename RT
754 , typename ClassT
755 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
756 , typename ClassA
757 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6
758 >
759 inline
760 typename detail::expression::function_eval<
761 detail::member_function_ptr<
762 7
763 , RT
764 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
765 >
766 , ClassA
767 , A0 , A1 , A2 , A3 , A4 , A5 , A6
768 >::type const
769 bind(
770 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
771 , ClassA const & obj
772 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6
773 )
774 {
775 typedef detail::member_function_ptr<
776 7
777 , RT
778 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
779 > fp_type;
780 return
781 detail::expression::function_eval<
782 fp_type
783 , ClassA
784 , A0 , A1 , A2 , A3 , A4 , A5 , A6
785 >::make(
786 fp_type(f)
787 , obj
788 , a0 , a1 , a2 , a3 , a4 , a5 , a6
789 );
790 }
791 template <
792 typename RT
793 , typename ClassT
794 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
795 , typename ClassA
796 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6
797 >
798 inline
799 typename detail::expression::function_eval<
800 detail::member_function_ptr<
801 7
802 , RT
803 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6) const
804 >
805 , ClassA
806 , A0 , A1 , A2 , A3 , A4 , A5 , A6
807 >::type const
808 bind(
809 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6) const
810 , ClassA const & obj
811 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6
812 )
813 {
814 typedef detail::member_function_ptr<
815 7
816 , RT
817 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6) const
818 > fp_type;
819 return
820 detail::expression::function_eval<
821 fp_type
822 , ClassA
823 , A0 , A1 , A2 , A3 , A4 , A5 , A6
824 >::make(
825 fp_type(f)
826 , obj
827 , a0 , a1 , a2 , a3 , a4 , a5 , a6
828 );
829 }
830 template <
831 typename RT
832 , typename ClassT
833 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
834 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6
835 >
836 inline
837 typename detail::expression::function_eval<
838 detail::member_function_ptr<
839 7
840 , RT
841 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
842 >
843 , ClassT
844 , A0 , A1 , A2 , A3 , A4 , A5 , A6
845 >::type const
846 bind(
847 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
848 , ClassT & obj
849 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6
850 )
851 {
852 typedef detail::member_function_ptr<
853 7
854 , RT
855 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
856 > fp_type;
857 return
858 detail::expression::function_eval<
859 fp_type
860 , ClassT
861 , A0 , A1 , A2 , A3 , A4 , A5 , A6
862 >::make(
863 fp_type(f)
864 , obj
865 , a0 , a1 , a2 , a3 , a4 , a5 , a6
866 );
867 }
868
869
870
871
872
873
874
875 template <
876 typename RT
877 , typename ClassT
878 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
879 , typename ClassA
880 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7
881 >
882 inline
883 typename detail::expression::function_eval<
884 detail::member_function_ptr<
885 8
886 , RT
887 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
888 >
889 , ClassA
890 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
891 >::type const
892 bind(
893 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
894 , ClassA const & obj
895 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7
896 )
897 {
898 typedef detail::member_function_ptr<
899 8
900 , RT
901 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
902 > fp_type;
903 return
904 detail::expression::function_eval<
905 fp_type
906 , ClassA
907 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
908 >::make(
909 fp_type(f)
910 , obj
911 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7
912 );
913 }
914 template <
915 typename RT
916 , typename ClassT
917 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
918 , typename ClassA
919 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7
920 >
921 inline
922 typename detail::expression::function_eval<
923 detail::member_function_ptr<
924 8
925 , RT
926 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const
927 >
928 , ClassA
929 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
930 >::type const
931 bind(
932 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const
933 , ClassA const & obj
934 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7
935 )
936 {
937 typedef detail::member_function_ptr<
938 8
939 , RT
940 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const
941 > fp_type;
942 return
943 detail::expression::function_eval<
944 fp_type
945 , ClassA
946 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
947 >::make(
948 fp_type(f)
949 , obj
950 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7
951 );
952 }
953 template <
954 typename RT
955 , typename ClassT
956 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
957 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7
958 >
959 inline
960 typename detail::expression::function_eval<
961 detail::member_function_ptr<
962 8
963 , RT
964 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
965 >
966 , ClassT
967 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
968 >::type const
969 bind(
970 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
971 , ClassT & obj
972 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7
973 )
974 {
975 typedef detail::member_function_ptr<
976 8
977 , RT
978 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
979 > fp_type;
980 return
981 detail::expression::function_eval<
982 fp_type
983 , ClassT
984 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
985 >::make(
986 fp_type(f)
987 , obj
988 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7
989 );
990 }
991
992
993
994
995
996
997
998 template <
999 typename RT
1000 , typename ClassT
1001 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
1002 , typename ClassA
1003 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8
1004 >
1005 inline
1006 typename detail::expression::function_eval<
1007 detail::member_function_ptr<
1008 9
1009 , RT
1010 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
1011 >
1012 , ClassA
1013 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
1014 >::type const
1015 bind(
1016 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
1017 , ClassA const & obj
1018 , 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
1019 )
1020 {
1021 typedef detail::member_function_ptr<
1022 9
1023 , RT
1024 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
1025 > fp_type;
1026 return
1027 detail::expression::function_eval<
1028 fp_type
1029 , ClassA
1030 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
1031 >::make(
1032 fp_type(f)
1033 , obj
1034 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8
1035 );
1036 }
1037 template <
1038 typename RT
1039 , typename ClassT
1040 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
1041 , typename ClassA
1042 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8
1043 >
1044 inline
1045 typename detail::expression::function_eval<
1046 detail::member_function_ptr<
1047 9
1048 , RT
1049 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const
1050 >
1051 , ClassA
1052 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
1053 >::type const
1054 bind(
1055 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const
1056 , ClassA const & obj
1057 , 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
1058 )
1059 {
1060 typedef detail::member_function_ptr<
1061 9
1062 , RT
1063 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const
1064 > fp_type;
1065 return
1066 detail::expression::function_eval<
1067 fp_type
1068 , ClassA
1069 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
1070 >::make(
1071 fp_type(f)
1072 , obj
1073 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8
1074 );
1075 }
1076 template <
1077 typename RT
1078 , typename ClassT
1079 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
1080 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8
1081 >
1082 inline
1083 typename detail::expression::function_eval<
1084 detail::member_function_ptr<
1085 9
1086 , RT
1087 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
1088 >
1089 , ClassT
1090 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
1091 >::type const
1092 bind(
1093 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
1094 , ClassT & obj
1095 , 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
1096 )
1097 {
1098 typedef detail::member_function_ptr<
1099 9
1100 , RT
1101 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
1102 > fp_type;
1103 return
1104 detail::expression::function_eval<
1105 fp_type
1106 , ClassT
1107 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
1108 >::make(
1109 fp_type(f)
1110 , obj
1111 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8
1112 );
1113 }
1114
1115
1116
1117
1118
1119
1120
1121 template <
1122 typename RT
1123 , typename ClassT
1124 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9
1125 , typename ClassA
1126 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9
1127 >
1128 inline
1129 typename detail::expression::function_eval<
1130 detail::member_function_ptr<
1131 10
1132 , RT
1133 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)
1134 >
1135 , ClassA
1136 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
1137 >::type const
1138 bind(
1139 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)
1140 , ClassA const & obj
1141 , 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
1142 )
1143 {
1144 typedef detail::member_function_ptr<
1145 10
1146 , RT
1147 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)
1148 > fp_type;
1149 return
1150 detail::expression::function_eval<
1151 fp_type
1152 , ClassA
1153 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
1154 >::make(
1155 fp_type(f)
1156 , obj
1157 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9
1158 );
1159 }
1160 template <
1161 typename RT
1162 , typename ClassT
1163 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9
1164 , typename ClassA
1165 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9
1166 >
1167 inline
1168 typename detail::expression::function_eval<
1169 detail::member_function_ptr<
1170 10
1171 , RT
1172 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const
1173 >
1174 , ClassA
1175 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
1176 >::type const
1177 bind(
1178 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const
1179 , ClassA const & obj
1180 , 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
1181 )
1182 {
1183 typedef detail::member_function_ptr<
1184 10
1185 , RT
1186 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const
1187 > fp_type;
1188 return
1189 detail::expression::function_eval<
1190 fp_type
1191 , ClassA
1192 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
1193 >::make(
1194 fp_type(f)
1195 , obj
1196 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9
1197 );
1198 }
1199 template <
1200 typename RT
1201 , typename ClassT
1202 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9
1203 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9
1204 >
1205 inline
1206 typename detail::expression::function_eval<
1207 detail::member_function_ptr<
1208 10
1209 , RT
1210 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)
1211 >
1212 , ClassT
1213 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
1214 >::type const
1215 bind(
1216 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)
1217 , ClassT & obj
1218 , 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
1219 )
1220 {
1221 typedef detail::member_function_ptr<
1222 10
1223 , RT
1224 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)
1225 > fp_type;
1226 return
1227 detail::expression::function_eval<
1228 fp_type
1229 , ClassT
1230 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
1231 >::make(
1232 fp_type(f)
1233 , obj
1234 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9
1235 );
1236 }
1237
1238
1239
1240
1241
1242
1243
1244 template <
1245 typename RT
1246 , typename ClassT
1247 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10
1248 , typename ClassA
1249 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10
1250 >
1251 inline
1252 typename detail::expression::function_eval<
1253 detail::member_function_ptr<
1254 11
1255 , RT
1256 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)
1257 >
1258 , ClassA
1259 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
1260 >::type const
1261 bind(
1262 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)
1263 , ClassA const & obj
1264 , 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
1265 )
1266 {
1267 typedef detail::member_function_ptr<
1268 11
1269 , RT
1270 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)
1271 > fp_type;
1272 return
1273 detail::expression::function_eval<
1274 fp_type
1275 , ClassA
1276 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
1277 >::make(
1278 fp_type(f)
1279 , obj
1280 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10
1281 );
1282 }
1283 template <
1284 typename RT
1285 , typename ClassT
1286 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10
1287 , typename ClassA
1288 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10
1289 >
1290 inline
1291 typename detail::expression::function_eval<
1292 detail::member_function_ptr<
1293 11
1294 , RT
1295 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const
1296 >
1297 , ClassA
1298 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
1299 >::type const
1300 bind(
1301 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const
1302 , ClassA const & obj
1303 , 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
1304 )
1305 {
1306 typedef detail::member_function_ptr<
1307 11
1308 , RT
1309 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const
1310 > fp_type;
1311 return
1312 detail::expression::function_eval<
1313 fp_type
1314 , ClassA
1315 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
1316 >::make(
1317 fp_type(f)
1318 , obj
1319 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10
1320 );
1321 }
1322 template <
1323 typename RT
1324 , typename ClassT
1325 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10
1326 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10
1327 >
1328 inline
1329 typename detail::expression::function_eval<
1330 detail::member_function_ptr<
1331 11
1332 , RT
1333 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)
1334 >
1335 , ClassT
1336 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
1337 >::type const
1338 bind(
1339 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)
1340 , ClassT & obj
1341 , 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
1342 )
1343 {
1344 typedef detail::member_function_ptr<
1345 11
1346 , RT
1347 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)
1348 > fp_type;
1349 return
1350 detail::expression::function_eval<
1351 fp_type
1352 , ClassT
1353 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
1354 >::make(
1355 fp_type(f)
1356 , obj
1357 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10
1358 );
1359 }
1360
1361
1362
1363
1364
1365
1366
1367 template <
1368 typename RT
1369 , typename ClassT
1370 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11
1371 , typename ClassA
1372 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11
1373 >
1374 inline
1375 typename detail::expression::function_eval<
1376 detail::member_function_ptr<
1377 12
1378 , RT
1379 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)
1380 >
1381 , ClassA
1382 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
1383 >::type const
1384 bind(
1385 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)
1386 , ClassA const & obj
1387 , 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
1388 )
1389 {
1390 typedef detail::member_function_ptr<
1391 12
1392 , RT
1393 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)
1394 > fp_type;
1395 return
1396 detail::expression::function_eval<
1397 fp_type
1398 , ClassA
1399 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
1400 >::make(
1401 fp_type(f)
1402 , obj
1403 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11
1404 );
1405 }
1406 template <
1407 typename RT
1408 , typename ClassT
1409 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11
1410 , typename ClassA
1411 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11
1412 >
1413 inline
1414 typename detail::expression::function_eval<
1415 detail::member_function_ptr<
1416 12
1417 , RT
1418 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const
1419 >
1420 , ClassA
1421 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
1422 >::type const
1423 bind(
1424 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const
1425 , ClassA const & obj
1426 , 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
1427 )
1428 {
1429 typedef detail::member_function_ptr<
1430 12
1431 , RT
1432 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const
1433 > fp_type;
1434 return
1435 detail::expression::function_eval<
1436 fp_type
1437 , ClassA
1438 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
1439 >::make(
1440 fp_type(f)
1441 , obj
1442 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11
1443 );
1444 }
1445 template <
1446 typename RT
1447 , typename ClassT
1448 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11
1449 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11
1450 >
1451 inline
1452 typename detail::expression::function_eval<
1453 detail::member_function_ptr<
1454 12
1455 , RT
1456 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)
1457 >
1458 , ClassT
1459 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
1460 >::type const
1461 bind(
1462 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)
1463 , ClassT & obj
1464 , 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
1465 )
1466 {
1467 typedef detail::member_function_ptr<
1468 12
1469 , RT
1470 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)
1471 > fp_type;
1472 return
1473 detail::expression::function_eval<
1474 fp_type
1475 , ClassT
1476 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
1477 >::make(
1478 fp_type(f)
1479 , obj
1480 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11
1481 );
1482 }
1483
1484
1485
1486
1487
1488
1489
1490 template <
1491 typename RT
1492 , typename ClassT
1493 , 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
1494 , typename ClassA
1495 , 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
1496 >
1497 inline
1498 typename detail::expression::function_eval<
1499 detail::member_function_ptr<
1500 13
1501 , RT
1502 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)
1503 >
1504 , ClassA
1505 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
1506 >::type const
1507 bind(
1508 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)
1509 , ClassA const & obj
1510 , 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
1511 )
1512 {
1513 typedef detail::member_function_ptr<
1514 13
1515 , RT
1516 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)
1517 > fp_type;
1518 return
1519 detail::expression::function_eval<
1520 fp_type
1521 , ClassA
1522 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
1523 >::make(
1524 fp_type(f)
1525 , obj
1526 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12
1527 );
1528 }
1529 template <
1530 typename RT
1531 , typename ClassT
1532 , 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
1533 , typename ClassA
1534 , 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
1535 >
1536 inline
1537 typename detail::expression::function_eval<
1538 detail::member_function_ptr<
1539 13
1540 , RT
1541 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const
1542 >
1543 , ClassA
1544 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
1545 >::type const
1546 bind(
1547 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const
1548 , ClassA const & obj
1549 , 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
1550 )
1551 {
1552 typedef detail::member_function_ptr<
1553 13
1554 , RT
1555 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const
1556 > fp_type;
1557 return
1558 detail::expression::function_eval<
1559 fp_type
1560 , ClassA
1561 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
1562 >::make(
1563 fp_type(f)
1564 , obj
1565 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12
1566 );
1567 }
1568 template <
1569 typename RT
1570 , typename ClassT
1571 , 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
1572 , 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
1573 >
1574 inline
1575 typename detail::expression::function_eval<
1576 detail::member_function_ptr<
1577 13
1578 , RT
1579 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)
1580 >
1581 , ClassT
1582 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
1583 >::type const
1584 bind(
1585 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)
1586 , ClassT & obj
1587 , 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
1588 )
1589 {
1590 typedef detail::member_function_ptr<
1591 13
1592 , RT
1593 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)
1594 > fp_type;
1595 return
1596 detail::expression::function_eval<
1597 fp_type
1598 , ClassT
1599 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
1600 >::make(
1601 fp_type(f)
1602 , obj
1603 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12
1604 );
1605 }
1606
1607
1608
1609
1610
1611
1612
1613 template <
1614 typename RT
1615 , typename ClassT
1616 , 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
1617 , typename ClassA
1618 , 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
1619 >
1620 inline
1621 typename detail::expression::function_eval<
1622 detail::member_function_ptr<
1623 14
1624 , RT
1625 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)
1626 >
1627 , ClassA
1628 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
1629 >::type const
1630 bind(
1631 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)
1632 , ClassA const & obj
1633 , 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
1634 )
1635 {
1636 typedef detail::member_function_ptr<
1637 14
1638 , RT
1639 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)
1640 > fp_type;
1641 return
1642 detail::expression::function_eval<
1643 fp_type
1644 , ClassA
1645 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
1646 >::make(
1647 fp_type(f)
1648 , obj
1649 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13
1650 );
1651 }
1652 template <
1653 typename RT
1654 , typename ClassT
1655 , 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
1656 , typename ClassA
1657 , 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
1658 >
1659 inline
1660 typename detail::expression::function_eval<
1661 detail::member_function_ptr<
1662 14
1663 , RT
1664 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const
1665 >
1666 , ClassA
1667 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
1668 >::type const
1669 bind(
1670 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const
1671 , ClassA const & obj
1672 , 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
1673 )
1674 {
1675 typedef detail::member_function_ptr<
1676 14
1677 , RT
1678 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const
1679 > fp_type;
1680 return
1681 detail::expression::function_eval<
1682 fp_type
1683 , ClassA
1684 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
1685 >::make(
1686 fp_type(f)
1687 , obj
1688 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13
1689 );
1690 }
1691 template <
1692 typename RT
1693 , typename ClassT
1694 , 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
1695 , 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
1696 >
1697 inline
1698 typename detail::expression::function_eval<
1699 detail::member_function_ptr<
1700 14
1701 , RT
1702 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)
1703 >
1704 , ClassT
1705 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
1706 >::type const
1707 bind(
1708 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)
1709 , ClassT & obj
1710 , 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
1711 )
1712 {
1713 typedef detail::member_function_ptr<
1714 14
1715 , RT
1716 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)
1717 > fp_type;
1718 return
1719 detail::expression::function_eval<
1720 fp_type
1721 , ClassT
1722 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
1723 >::make(
1724 fp_type(f)
1725 , obj
1726 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13
1727 );
1728 }
1729
1730
1731
1732
1733
1734
1735
1736 template <
1737 typename RT
1738 , typename ClassT
1739 , 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
1740 , typename ClassA
1741 , 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
1742 >
1743 inline
1744 typename detail::expression::function_eval<
1745 detail::member_function_ptr<
1746 15
1747 , RT
1748 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)
1749 >
1750 , ClassA
1751 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
1752 >::type const
1753 bind(
1754 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)
1755 , ClassA const & obj
1756 , 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
1757 )
1758 {
1759 typedef detail::member_function_ptr<
1760 15
1761 , RT
1762 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)
1763 > fp_type;
1764 return
1765 detail::expression::function_eval<
1766 fp_type
1767 , ClassA
1768 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
1769 >::make(
1770 fp_type(f)
1771 , obj
1772 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14
1773 );
1774 }
1775 template <
1776 typename RT
1777 , typename ClassT
1778 , 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
1779 , typename ClassA
1780 , 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
1781 >
1782 inline
1783 typename detail::expression::function_eval<
1784 detail::member_function_ptr<
1785 15
1786 , RT
1787 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const
1788 >
1789 , ClassA
1790 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
1791 >::type const
1792 bind(
1793 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const
1794 , ClassA const & obj
1795 , 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
1796 )
1797 {
1798 typedef detail::member_function_ptr<
1799 15
1800 , RT
1801 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const
1802 > fp_type;
1803 return
1804 detail::expression::function_eval<
1805 fp_type
1806 , ClassA
1807 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
1808 >::make(
1809 fp_type(f)
1810 , obj
1811 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14
1812 );
1813 }
1814 template <
1815 typename RT
1816 , typename ClassT
1817 , 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
1818 , 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
1819 >
1820 inline
1821 typename detail::expression::function_eval<
1822 detail::member_function_ptr<
1823 15
1824 , RT
1825 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)
1826 >
1827 , ClassT
1828 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
1829 >::type const
1830 bind(
1831 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)
1832 , ClassT & obj
1833 , 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
1834 )
1835 {
1836 typedef detail::member_function_ptr<
1837 15
1838 , RT
1839 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)
1840 > fp_type;
1841 return
1842 detail::expression::function_eval<
1843 fp_type
1844 , ClassT
1845 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
1846 >::make(
1847 fp_type(f)
1848 , obj
1849 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14
1850 );
1851 }
1852
1853
1854
1855
1856
1857
1858
1859 template <
1860 typename RT
1861 , typename ClassT
1862 , 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
1863 , typename ClassA
1864 , 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
1865 >
1866 inline
1867 typename detail::expression::function_eval<
1868 detail::member_function_ptr<
1869 16
1870 , RT
1871 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)
1872 >
1873 , ClassA
1874 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
1875 >::type const
1876 bind(
1877 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)
1878 , ClassA const & obj
1879 , 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
1880 )
1881 {
1882 typedef detail::member_function_ptr<
1883 16
1884 , RT
1885 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)
1886 > fp_type;
1887 return
1888 detail::expression::function_eval<
1889 fp_type
1890 , ClassA
1891 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
1892 >::make(
1893 fp_type(f)
1894 , obj
1895 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15
1896 );
1897 }
1898 template <
1899 typename RT
1900 , typename ClassT
1901 , 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
1902 , typename ClassA
1903 , 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
1904 >
1905 inline
1906 typename detail::expression::function_eval<
1907 detail::member_function_ptr<
1908 16
1909 , RT
1910 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const
1911 >
1912 , ClassA
1913 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
1914 >::type const
1915 bind(
1916 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const
1917 , ClassA const & obj
1918 , 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
1919 )
1920 {
1921 typedef detail::member_function_ptr<
1922 16
1923 , RT
1924 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const
1925 > fp_type;
1926 return
1927 detail::expression::function_eval<
1928 fp_type
1929 , ClassA
1930 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
1931 >::make(
1932 fp_type(f)
1933 , obj
1934 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15
1935 );
1936 }
1937 template <
1938 typename RT
1939 , typename ClassT
1940 , 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
1941 , 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
1942 >
1943 inline
1944 typename detail::expression::function_eval<
1945 detail::member_function_ptr<
1946 16
1947 , RT
1948 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)
1949 >
1950 , ClassT
1951 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
1952 >::type const
1953 bind(
1954 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)
1955 , ClassT & obj
1956 , 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
1957 )
1958 {
1959 typedef detail::member_function_ptr<
1960 16
1961 , RT
1962 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)
1963 > fp_type;
1964 return
1965 detail::expression::function_eval<
1966 fp_type
1967 , ClassT
1968 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
1969 >::make(
1970 fp_type(f)
1971 , obj
1972 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15
1973 );
1974 }
1975
1976
1977
1978
1979
1980
1981
1982 template <
1983 typename RT
1984 , typename ClassT
1985 , 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
1986 , typename ClassA
1987 , 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
1988 >
1989 inline
1990 typename detail::expression::function_eval<
1991 detail::member_function_ptr<
1992 17
1993 , RT
1994 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)
1995 >
1996 , ClassA
1997 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
1998 >::type const
1999 bind(
2000 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)
2001 , ClassA const & obj
2002 , 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
2003 )
2004 {
2005 typedef detail::member_function_ptr<
2006 17
2007 , RT
2008 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)
2009 > fp_type;
2010 return
2011 detail::expression::function_eval<
2012 fp_type
2013 , ClassA
2014 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
2015 >::make(
2016 fp_type(f)
2017 , obj
2018 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16
2019 );
2020 }
2021 template <
2022 typename RT
2023 , typename ClassT
2024 , 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
2025 , typename ClassA
2026 , 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
2027 >
2028 inline
2029 typename detail::expression::function_eval<
2030 detail::member_function_ptr<
2031 17
2032 , RT
2033 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const
2034 >
2035 , ClassA
2036 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
2037 >::type const
2038 bind(
2039 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const
2040 , ClassA const & obj
2041 , 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
2042 )
2043 {
2044 typedef detail::member_function_ptr<
2045 17
2046 , RT
2047 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const
2048 > fp_type;
2049 return
2050 detail::expression::function_eval<
2051 fp_type
2052 , ClassA
2053 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
2054 >::make(
2055 fp_type(f)
2056 , obj
2057 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16
2058 );
2059 }
2060 template <
2061 typename RT
2062 , typename ClassT
2063 , 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
2064 , 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
2065 >
2066 inline
2067 typename detail::expression::function_eval<
2068 detail::member_function_ptr<
2069 17
2070 , RT
2071 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)
2072 >
2073 , ClassT
2074 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
2075 >::type const
2076 bind(
2077 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)
2078 , ClassT & obj
2079 , 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
2080 )
2081 {
2082 typedef detail::member_function_ptr<
2083 17
2084 , RT
2085 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)
2086 > fp_type;
2087 return
2088 detail::expression::function_eval<
2089 fp_type
2090 , ClassT
2091 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
2092 >::make(
2093 fp_type(f)
2094 , obj
2095 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16
2096 );
2097 }
2098
2099
2100
2101
2102
2103
2104
2105 template <
2106 typename RT
2107 , typename ClassT
2108 , 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
2109 , typename ClassA
2110 , 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
2111 >
2112 inline
2113 typename detail::expression::function_eval<
2114 detail::member_function_ptr<
2115 18
2116 , RT
2117 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)
2118 >
2119 , ClassA
2120 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
2121 >::type const
2122 bind(
2123 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)
2124 , ClassA const & obj
2125 , 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
2126 )
2127 {
2128 typedef detail::member_function_ptr<
2129 18
2130 , RT
2131 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)
2132 > fp_type;
2133 return
2134 detail::expression::function_eval<
2135 fp_type
2136 , ClassA
2137 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
2138 >::make(
2139 fp_type(f)
2140 , obj
2141 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17
2142 );
2143 }
2144 template <
2145 typename RT
2146 , typename ClassT
2147 , 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
2148 , typename ClassA
2149 , 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
2150 >
2151 inline
2152 typename detail::expression::function_eval<
2153 detail::member_function_ptr<
2154 18
2155 , RT
2156 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const
2157 >
2158 , ClassA
2159 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
2160 >::type const
2161 bind(
2162 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const
2163 , ClassA const & obj
2164 , 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
2165 )
2166 {
2167 typedef detail::member_function_ptr<
2168 18
2169 , RT
2170 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const
2171 > fp_type;
2172 return
2173 detail::expression::function_eval<
2174 fp_type
2175 , ClassA
2176 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
2177 >::make(
2178 fp_type(f)
2179 , obj
2180 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17
2181 );
2182 }
2183 template <
2184 typename RT
2185 , typename ClassT
2186 , 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
2187 , 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
2188 >
2189 inline
2190 typename detail::expression::function_eval<
2191 detail::member_function_ptr<
2192 18
2193 , RT
2194 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)
2195 >
2196 , ClassT
2197 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
2198 >::type const
2199 bind(
2200 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)
2201 , ClassT & obj
2202 , 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
2203 )
2204 {
2205 typedef detail::member_function_ptr<
2206 18
2207 , RT
2208 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)
2209 > fp_type;
2210 return
2211 detail::expression::function_eval<
2212 fp_type
2213 , ClassT
2214 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
2215 >::make(
2216 fp_type(f)
2217 , obj
2218 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17
2219 );
2220 }
2221
2222
2223
2224
2225
2226
2227
2228 template <
2229 typename RT
2230 , typename ClassT
2231 , 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
2232 , typename ClassA
2233 , 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
2234 >
2235 inline
2236 typename detail::expression::function_eval<
2237 detail::member_function_ptr<
2238 19
2239 , RT
2240 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)
2241 >
2242 , ClassA
2243 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
2244 >::type const
2245 bind(
2246 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)
2247 , ClassA const & obj
2248 , 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
2249 )
2250 {
2251 typedef detail::member_function_ptr<
2252 19
2253 , RT
2254 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)
2255 > fp_type;
2256 return
2257 detail::expression::function_eval<
2258 fp_type
2259 , ClassA
2260 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
2261 >::make(
2262 fp_type(f)
2263 , obj
2264 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18
2265 );
2266 }
2267 template <
2268 typename RT
2269 , typename ClassT
2270 , 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
2271 , typename ClassA
2272 , 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
2273 >
2274 inline
2275 typename detail::expression::function_eval<
2276 detail::member_function_ptr<
2277 19
2278 , RT
2279 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const
2280 >
2281 , ClassA
2282 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
2283 >::type const
2284 bind(
2285 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const
2286 , ClassA const & obj
2287 , 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
2288 )
2289 {
2290 typedef detail::member_function_ptr<
2291 19
2292 , RT
2293 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const
2294 > fp_type;
2295 return
2296 detail::expression::function_eval<
2297 fp_type
2298 , ClassA
2299 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
2300 >::make(
2301 fp_type(f)
2302 , obj
2303 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18
2304 );
2305 }
2306 template <
2307 typename RT
2308 , typename ClassT
2309 , 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
2310 , 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
2311 >
2312 inline
2313 typename detail::expression::function_eval<
2314 detail::member_function_ptr<
2315 19
2316 , RT
2317 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)
2318 >
2319 , ClassT
2320 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
2321 >::type const
2322 bind(
2323 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)
2324 , ClassT & obj
2325 , 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
2326 )
2327 {
2328 typedef detail::member_function_ptr<
2329 19
2330 , RT
2331 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)
2332 > fp_type;
2333 return
2334 detail::expression::function_eval<
2335 fp_type
2336 , ClassT
2337 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
2338 >::make(
2339 fp_type(f)
2340 , obj
2341 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18
2342 );
2343 }