1 /*=============================================================================
2 Copyright (c) 2001-2007 Joel de Guzman
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 ==============================================================================*/
22 typename detail::expression::function_eval<
23 detail::member_function_ptr<
37 typedef detail::member_function_ptr<
43 detail::expression::function_eval<
61 typename detail::expression::function_eval<
62 detail::member_function_ptr<
65 , RT(ClassT::*)(T0) const
71 RT(ClassT::*f)(T0) const
76 typedef detail::member_function_ptr<
79 , RT(ClassT::*)(T0) const
82 detail::expression::function_eval<
99 typename detail::expression::function_eval<
100 detail::member_function_ptr<
114 typedef detail::member_function_ptr<
120 detail::expression::function_eval<
140 , typename T0 , typename T1
142 , typename A0 , typename A1
145 typename detail::expression::function_eval<
146 detail::member_function_ptr<
149 , RT(ClassT::*)(T0 , T1)
155 RT(ClassT::*f)(T0 , T1)
157 , A0 const& a0 , A1 const& a1
160 typedef detail::member_function_ptr<
163 , RT(ClassT::*)(T0 , T1)
166 detail::expression::function_eval<
179 , typename T0 , typename T1
181 , typename A0 , typename A1
184 typename detail::expression::function_eval<
185 detail::member_function_ptr<
188 , RT(ClassT::*)(T0 , T1) const
194 RT(ClassT::*f)(T0 , T1) const
196 , A0 const& a0 , A1 const& a1
199 typedef detail::member_function_ptr<
202 , RT(ClassT::*)(T0 , T1) const
205 detail::expression::function_eval<
218 , typename T0 , typename T1
219 , typename A0 , typename A1
222 typename detail::expression::function_eval<
223 detail::member_function_ptr<
226 , RT(ClassT::*)(T0 , T1)
232 RT(ClassT::*f)(T0 , T1)
234 , A0 const& a0 , A1 const& a1
237 typedef detail::member_function_ptr<
240 , RT(ClassT::*)(T0 , T1)
243 detail::expression::function_eval<
263 , typename T0 , typename T1 , typename T2
265 , typename A0 , typename A1 , typename A2
268 typename detail::expression::function_eval<
269 detail::member_function_ptr<
272 , RT(ClassT::*)(T0 , T1 , T2)
278 RT(ClassT::*f)(T0 , T1 , T2)
280 , A0 const& a0 , A1 const& a1 , A2 const& a2
283 typedef detail::member_function_ptr<
286 , RT(ClassT::*)(T0 , T1 , T2)
289 detail::expression::function_eval<
302 , typename T0 , typename T1 , typename T2
304 , typename A0 , typename A1 , typename A2
307 typename detail::expression::function_eval<
308 detail::member_function_ptr<
311 , RT(ClassT::*)(T0 , T1 , T2) const
317 RT(ClassT::*f)(T0 , T1 , T2) const
319 , A0 const& a0 , A1 const& a1 , A2 const& a2
322 typedef detail::member_function_ptr<
325 , RT(ClassT::*)(T0 , T1 , T2) const
328 detail::expression::function_eval<
341 , typename T0 , typename T1 , typename T2
342 , typename A0 , typename A1 , typename A2
345 typename detail::expression::function_eval<
346 detail::member_function_ptr<
349 , RT(ClassT::*)(T0 , T1 , T2)
355 RT(ClassT::*f)(T0 , T1 , T2)
357 , A0 const& a0 , A1 const& a1 , A2 const& a2
360 typedef detail::member_function_ptr<
363 , RT(ClassT::*)(T0 , T1 , T2)
366 detail::expression::function_eval<
386 , typename T0 , typename T1 , typename T2 , typename T3
388 , typename A0 , typename A1 , typename A2 , typename A3
391 typename detail::expression::function_eval<
392 detail::member_function_ptr<
395 , RT(ClassT::*)(T0 , T1 , T2 , T3)
401 RT(ClassT::*f)(T0 , T1 , T2 , T3)
403 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3
406 typedef detail::member_function_ptr<
409 , RT(ClassT::*)(T0 , T1 , T2 , T3)
412 detail::expression::function_eval<
425 , typename T0 , typename T1 , typename T2 , typename T3
427 , typename A0 , typename A1 , typename A2 , typename A3
430 typename detail::expression::function_eval<
431 detail::member_function_ptr<
434 , RT(ClassT::*)(T0 , T1 , T2 , T3) const
440 RT(ClassT::*f)(T0 , T1 , T2 , T3) const
442 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3
445 typedef detail::member_function_ptr<
448 , RT(ClassT::*)(T0 , T1 , T2 , T3) const
451 detail::expression::function_eval<
464 , typename T0 , typename T1 , typename T2 , typename T3
465 , typename A0 , typename A1 , typename A2 , typename A3
468 typename detail::expression::function_eval<
469 detail::member_function_ptr<
472 , RT(ClassT::*)(T0 , T1 , T2 , T3)
478 RT(ClassT::*f)(T0 , T1 , T2 , T3)
480 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3
483 typedef detail::member_function_ptr<
486 , RT(ClassT::*)(T0 , T1 , T2 , T3)
489 detail::expression::function_eval<
509 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4
511 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4
514 typename detail::expression::function_eval<
515 detail::member_function_ptr<
518 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4)
521 , A0 , A1 , A2 , A3 , A4
524 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4)
526 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4
529 typedef detail::member_function_ptr<
532 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4)
535 detail::expression::function_eval<
538 , A0 , A1 , A2 , A3 , A4
542 , a0 , a1 , a2 , a3 , a4
548 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4
550 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4
553 typename detail::expression::function_eval<
554 detail::member_function_ptr<
557 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4) const
560 , A0 , A1 , A2 , A3 , A4
563 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4) const
565 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4
568 typedef detail::member_function_ptr<
571 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4) const
574 detail::expression::function_eval<
577 , A0 , A1 , A2 , A3 , A4
581 , a0 , a1 , a2 , a3 , a4
587 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4
588 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4
591 typename detail::expression::function_eval<
592 detail::member_function_ptr<
595 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4)
598 , A0 , A1 , A2 , A3 , A4
601 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4)
603 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4
606 typedef detail::member_function_ptr<
609 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4)
612 detail::expression::function_eval<
615 , A0 , A1 , A2 , A3 , A4
619 , a0 , a1 , a2 , a3 , a4
632 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
634 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5
637 typename detail::expression::function_eval<
638 detail::member_function_ptr<
641 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5)
644 , A0 , A1 , A2 , A3 , A4 , A5
647 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5)
649 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5
652 typedef detail::member_function_ptr<
655 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5)
658 detail::expression::function_eval<
661 , A0 , A1 , A2 , A3 , A4 , A5
665 , a0 , a1 , a2 , a3 , a4 , a5
671 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
673 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5
676 typename detail::expression::function_eval<
677 detail::member_function_ptr<
680 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5) const
683 , A0 , A1 , A2 , A3 , A4 , A5
686 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5) const
688 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5
691 typedef detail::member_function_ptr<
694 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5) const
697 detail::expression::function_eval<
700 , A0 , A1 , A2 , A3 , A4 , A5
704 , a0 , a1 , a2 , a3 , a4 , a5
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
714 typename detail::expression::function_eval<
715 detail::member_function_ptr<
718 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5)
721 , A0 , A1 , A2 , A3 , A4 , A5
724 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5)
726 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5
729 typedef detail::member_function_ptr<
732 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5)
735 detail::expression::function_eval<
738 , A0 , A1 , A2 , A3 , A4 , A5
742 , a0 , a1 , a2 , a3 , a4 , a5
755 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
757 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6
760 typename detail::expression::function_eval<
761 detail::member_function_ptr<
764 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
767 , A0 , A1 , A2 , A3 , A4 , A5 , A6
770 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
772 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6
775 typedef detail::member_function_ptr<
778 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
781 detail::expression::function_eval<
784 , A0 , A1 , A2 , A3 , A4 , A5 , A6
788 , a0 , a1 , a2 , a3 , a4 , a5 , a6
794 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
796 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6
799 typename detail::expression::function_eval<
800 detail::member_function_ptr<
803 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6) const
806 , A0 , A1 , A2 , A3 , A4 , A5 , A6
809 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6) const
811 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6
814 typedef detail::member_function_ptr<
817 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6) const
820 detail::expression::function_eval<
823 , A0 , A1 , A2 , A3 , A4 , A5 , A6
827 , a0 , a1 , a2 , a3 , a4 , a5 , a6
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
837 typename detail::expression::function_eval<
838 detail::member_function_ptr<
841 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
844 , A0 , A1 , A2 , A3 , A4 , A5 , A6
847 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
849 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6
852 typedef detail::member_function_ptr<
855 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
858 detail::expression::function_eval<
861 , A0 , A1 , A2 , A3 , A4 , A5 , A6
865 , a0 , a1 , a2 , a3 , a4 , a5 , a6
878 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
880 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7
883 typename detail::expression::function_eval<
884 detail::member_function_ptr<
887 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
890 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
893 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
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
898 typedef detail::member_function_ptr<
901 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
904 detail::expression::function_eval<
907 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
911 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7
917 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
919 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7
922 typename detail::expression::function_eval<
923 detail::member_function_ptr<
926 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const
929 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
932 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const
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
937 typedef detail::member_function_ptr<
940 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const
943 detail::expression::function_eval<
946 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
950 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7
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
960 typename detail::expression::function_eval<
961 detail::member_function_ptr<
964 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
967 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
970 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
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
975 typedef detail::member_function_ptr<
978 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
981 detail::expression::function_eval<
984 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
988 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7
1001 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
1003 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8
1006 typename detail::expression::function_eval<
1007 detail::member_function_ptr<
1010 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
1013 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
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
1021 typedef detail::member_function_ptr<
1024 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
1027 detail::expression::function_eval<
1030 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
1034 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8
1040 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
1042 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8
1045 typename detail::expression::function_eval<
1046 detail::member_function_ptr<
1049 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const
1052 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
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
1060 typedef detail::member_function_ptr<
1063 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const
1066 detail::expression::function_eval<
1069 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
1073 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8
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
1083 typename detail::expression::function_eval<
1084 detail::member_function_ptr<
1087 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
1090 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
1093 RT(ClassT::*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
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
1098 typedef detail::member_function_ptr<
1101 , RT(ClassT::*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
1104 detail::expression::function_eval<
1107 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
1111 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8