]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/phoenix/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_member_function_10.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_10.hpp
CommitLineData
7c673cae
FG
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 }