Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(146)

Side by Side Diff: testing/gmock_mutant.h

Issue 395023: Late object binding for stdcall. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « testing/generate_gmock_mutant.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file automatically generated by testing/generate_gmock_mutant.py. 5 // This file automatically generated by testing/generate_gmock_mutant.py.
6 // DO NOT EDIT. 6 // DO NOT EDIT.
7 7
8 #ifndef TESTING_GMOCK_MUTANT_H_ 8 #ifndef TESTING_GMOCK_MUTANT_H_
9 #define TESTING_GMOCK_MUTANT_H_ 9 #define TESTING_GMOCK_MUTANT_H_
10 10
(...skipping 632 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 #if defined (OS_WIN) 643 #if defined (OS_WIN)
644 template <typename R, typename T, typename U> 644 template <typename R, typename T, typename U>
645 inline MutantFunctor<R, Tuple0> 645 inline MutantFunctor<R, Tuple0>
646 CreateFunctor(T* obj, R (__stdcall U::*method)()) { 646 CreateFunctor(T* obj, R (__stdcall U::*method)()) {
647 MutantRunner<R, Tuple0>* t = 647 MutantRunner<R, Tuple0>* t =
648 new Mutant<R, T, R (__stdcall U::*)(), 648 new Mutant<R, T, R (__stdcall U::*)(),
649 Tuple0, Tuple0> 649 Tuple0, Tuple0>
650 (obj, method, MakeTuple()); 650 (obj, method, MakeTuple());
651 return MutantFunctor<R, Tuple0>(t); 651 return MutantFunctor<R, Tuple0>(t);
652 } 652 }
653 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
654 template <typename R, typename T, typename U>
655 inline MutantFunctor<R, Tuple0>
656 CreateFunctor(T** obj, R (__stdcall U::*method)()) {
657 MutantRunner<R, Tuple0>* t =
658 new MutantLateObjectBind<R, T, R (__stdcall U::*)(),
659 Tuple0, Tuple0>
660 (obj, method, MakeTuple());
661 return MutantFunctor<R, Tuple0>(t);
662 }
663 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
653 #endif // OS_WIN 664 #endif // OS_WIN
654 665
655 // 0 - 1 666 // 0 - 1
656 template <typename R, typename T, typename U, typename A1> 667 template <typename R, typename T, typename U, typename A1>
657 inline MutantFunctor<R, Tuple1<A1> > 668 inline MutantFunctor<R, Tuple1<A1> >
658 CreateFunctor(T* obj, R (U::*method)(A1)) { 669 CreateFunctor(T* obj, R (U::*method)(A1)) {
659 MutantRunner<R, Tuple1<A1> >* t = 670 MutantRunner<R, Tuple1<A1> >* t =
660 new Mutant<R, T, R (U::*)(A1), 671 new Mutant<R, T, R (U::*)(A1),
661 Tuple0, Tuple1<A1> > 672 Tuple0, Tuple1<A1> >
662 (obj, method, MakeTuple()); 673 (obj, method, MakeTuple());
(...skipping 25 matching lines...) Expand all
688 #if defined (OS_WIN) 699 #if defined (OS_WIN)
689 template <typename R, typename T, typename U, typename A1> 700 template <typename R, typename T, typename U, typename A1>
690 inline MutantFunctor<R, Tuple1<A1> > 701 inline MutantFunctor<R, Tuple1<A1> >
691 CreateFunctor(T* obj, R (__stdcall U::*method)(A1)) { 702 CreateFunctor(T* obj, R (__stdcall U::*method)(A1)) {
692 MutantRunner<R, Tuple1<A1> >* t = 703 MutantRunner<R, Tuple1<A1> >* t =
693 new Mutant<R, T, R (__stdcall U::*)(A1), 704 new Mutant<R, T, R (__stdcall U::*)(A1),
694 Tuple0, Tuple1<A1> > 705 Tuple0, Tuple1<A1> >
695 (obj, method, MakeTuple()); 706 (obj, method, MakeTuple());
696 return MutantFunctor<R, Tuple1<A1> >(t); 707 return MutantFunctor<R, Tuple1<A1> >(t);
697 } 708 }
709 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
710 template <typename R, typename T, typename U, typename A1>
711 inline MutantFunctor<R, Tuple1<A1> >
712 CreateFunctor(T** obj, R (__stdcall U::*method)(A1)) {
713 MutantRunner<R, Tuple1<A1> >* t =
714 new MutantLateObjectBind<R, T, R (__stdcall U::*)(A1),
715 Tuple0, Tuple1<A1> >
716 (obj, method, MakeTuple());
717 return MutantFunctor<R, Tuple1<A1> >(t);
718 }
719 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
698 #endif // OS_WIN 720 #endif // OS_WIN
699 721
700 // 0 - 2 722 // 0 - 2
701 template <typename R, typename T, typename U, typename A1, typename A2> 723 template <typename R, typename T, typename U, typename A1, typename A2>
702 inline MutantFunctor<R, Tuple2<A1, A2> > 724 inline MutantFunctor<R, Tuple2<A1, A2> >
703 CreateFunctor(T* obj, R (U::*method)(A1, A2)) { 725 CreateFunctor(T* obj, R (U::*method)(A1, A2)) {
704 MutantRunner<R, Tuple2<A1, A2> >* t = 726 MutantRunner<R, Tuple2<A1, A2> >* t =
705 new Mutant<R, T, R (U::*)(A1, A2), 727 new Mutant<R, T, R (U::*)(A1, A2),
706 Tuple0, Tuple2<A1, A2> > 728 Tuple0, Tuple2<A1, A2> >
707 (obj, method, MakeTuple()); 729 (obj, method, MakeTuple());
(...skipping 25 matching lines...) Expand all
733 #if defined (OS_WIN) 755 #if defined (OS_WIN)
734 template <typename R, typename T, typename U, typename A1, typename A2> 756 template <typename R, typename T, typename U, typename A1, typename A2>
735 inline MutantFunctor<R, Tuple2<A1, A2> > 757 inline MutantFunctor<R, Tuple2<A1, A2> >
736 CreateFunctor(T* obj, R (__stdcall U::*method)(A1, A2)) { 758 CreateFunctor(T* obj, R (__stdcall U::*method)(A1, A2)) {
737 MutantRunner<R, Tuple2<A1, A2> >* t = 759 MutantRunner<R, Tuple2<A1, A2> >* t =
738 new Mutant<R, T, R (__stdcall U::*)(A1, A2), 760 new Mutant<R, T, R (__stdcall U::*)(A1, A2),
739 Tuple0, Tuple2<A1, A2> > 761 Tuple0, Tuple2<A1, A2> >
740 (obj, method, MakeTuple()); 762 (obj, method, MakeTuple());
741 return MutantFunctor<R, Tuple2<A1, A2> >(t); 763 return MutantFunctor<R, Tuple2<A1, A2> >(t);
742 } 764 }
765 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
766 template <typename R, typename T, typename U, typename A1, typename A2>
767 inline MutantFunctor<R, Tuple2<A1, A2> >
768 CreateFunctor(T** obj, R (__stdcall U::*method)(A1, A2)) {
769 MutantRunner<R, Tuple2<A1, A2> >* t =
770 new MutantLateObjectBind<R, T, R (__stdcall U::*)(A1, A2),
771 Tuple0, Tuple2<A1, A2> >
772 (obj, method, MakeTuple());
773 return MutantFunctor<R, Tuple2<A1, A2> >(t);
774 }
775 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
743 #endif // OS_WIN 776 #endif // OS_WIN
744 777
745 // 0 - 3 778 // 0 - 3
746 template <typename R, typename T, typename U, typename A1, typename A2, 779 template <typename R, typename T, typename U, typename A1, typename A2,
747 typename A3> 780 typename A3>
748 inline MutantFunctor<R, Tuple3<A1, A2, A3> > 781 inline MutantFunctor<R, Tuple3<A1, A2, A3> >
749 CreateFunctor(T* obj, R (U::*method)(A1, A2, A3)) { 782 CreateFunctor(T* obj, R (U::*method)(A1, A2, A3)) {
750 MutantRunner<R, Tuple3<A1, A2, A3> >* t = 783 MutantRunner<R, Tuple3<A1, A2, A3> >* t =
751 new Mutant<R, T, R (U::*)(A1, A2, A3), 784 new Mutant<R, T, R (U::*)(A1, A2, A3),
752 Tuple0, Tuple3<A1, A2, A3> > 785 Tuple0, Tuple3<A1, A2, A3> >
(...skipping 28 matching lines...) Expand all
781 template <typename R, typename T, typename U, typename A1, typename A2, 814 template <typename R, typename T, typename U, typename A1, typename A2,
782 typename A3> 815 typename A3>
783 inline MutantFunctor<R, Tuple3<A1, A2, A3> > 816 inline MutantFunctor<R, Tuple3<A1, A2, A3> >
784 CreateFunctor(T* obj, R (__stdcall U::*method)(A1, A2, A3)) { 817 CreateFunctor(T* obj, R (__stdcall U::*method)(A1, A2, A3)) {
785 MutantRunner<R, Tuple3<A1, A2, A3> >* t = 818 MutantRunner<R, Tuple3<A1, A2, A3> >* t =
786 new Mutant<R, T, R (__stdcall U::*)(A1, A2, A3), 819 new Mutant<R, T, R (__stdcall U::*)(A1, A2, A3),
787 Tuple0, Tuple3<A1, A2, A3> > 820 Tuple0, Tuple3<A1, A2, A3> >
788 (obj, method, MakeTuple()); 821 (obj, method, MakeTuple());
789 return MutantFunctor<R, Tuple3<A1, A2, A3> >(t); 822 return MutantFunctor<R, Tuple3<A1, A2, A3> >(t);
790 } 823 }
824 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
825 template <typename R, typename T, typename U, typename A1, typename A2,
826 typename A3>
827 inline MutantFunctor<R, Tuple3<A1, A2, A3> >
828 CreateFunctor(T** obj, R (__stdcall U::*method)(A1, A2, A3)) {
829 MutantRunner<R, Tuple3<A1, A2, A3> >* t =
830 new MutantLateObjectBind<R, T, R (__stdcall U::*)(A1, A2, A3),
831 Tuple0, Tuple3<A1, A2, A3> >
832 (obj, method, MakeTuple());
833 return MutantFunctor<R, Tuple3<A1, A2, A3> >(t);
834 }
835 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
791 #endif // OS_WIN 836 #endif // OS_WIN
792 837
793 // 0 - 4 838 // 0 - 4
794 template <typename R, typename T, typename U, typename A1, typename A2, 839 template <typename R, typename T, typename U, typename A1, typename A2,
795 typename A3, typename A4> 840 typename A3, typename A4>
796 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> > 841 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> >
797 CreateFunctor(T* obj, R (U::*method)(A1, A2, A3, A4)) { 842 CreateFunctor(T* obj, R (U::*method)(A1, A2, A3, A4)) {
798 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t = 843 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t =
799 new Mutant<R, T, R (U::*)(A1, A2, A3, A4), 844 new Mutant<R, T, R (U::*)(A1, A2, A3, A4),
800 Tuple0, Tuple4<A1, A2, A3, A4> > 845 Tuple0, Tuple4<A1, A2, A3, A4> >
(...skipping 28 matching lines...) Expand all
829 template <typename R, typename T, typename U, typename A1, typename A2, 874 template <typename R, typename T, typename U, typename A1, typename A2,
830 typename A3, typename A4> 875 typename A3, typename A4>
831 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> > 876 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> >
832 CreateFunctor(T* obj, R (__stdcall U::*method)(A1, A2, A3, A4)) { 877 CreateFunctor(T* obj, R (__stdcall U::*method)(A1, A2, A3, A4)) {
833 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t = 878 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t =
834 new Mutant<R, T, R (__stdcall U::*)(A1, A2, A3, A4), 879 new Mutant<R, T, R (__stdcall U::*)(A1, A2, A3, A4),
835 Tuple0, Tuple4<A1, A2, A3, A4> > 880 Tuple0, Tuple4<A1, A2, A3, A4> >
836 (obj, method, MakeTuple()); 881 (obj, method, MakeTuple());
837 return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t); 882 return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t);
838 } 883 }
884 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
885 template <typename R, typename T, typename U, typename A1, typename A2,
886 typename A3, typename A4>
887 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> >
888 CreateFunctor(T** obj, R (__stdcall U::*method)(A1, A2, A3, A4)) {
889 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t =
890 new MutantLateObjectBind<R, T, R (__stdcall U::*)(A1, A2, A3, A4),
891 Tuple0, Tuple4<A1, A2, A3, A4> >
892 (obj, method, MakeTuple());
893 return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t);
894 }
895 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
839 #endif // OS_WIN 896 #endif // OS_WIN
840 897
841 // 1 - 0 898 // 1 - 0
842 template <typename R, typename T, typename U, typename P1, typename X1> 899 template <typename R, typename T, typename U, typename P1, typename X1>
843 inline MutantFunctor<R, Tuple0> 900 inline MutantFunctor<R, Tuple0>
844 CreateFunctor(T* obj, R (U::*method)(X1), const P1& p1) { 901 CreateFunctor(T* obj, R (U::*method)(X1), const P1& p1) {
845 MutantRunner<R, Tuple0>* t = 902 MutantRunner<R, Tuple0>* t =
846 new Mutant<R, T, R (U::*)(X1), 903 new Mutant<R, T, R (U::*)(X1),
847 Tuple1<P1>, Tuple0> 904 Tuple1<P1>, Tuple0>
848 (obj, method, MakeTuple(p1)); 905 (obj, method, MakeTuple(p1));
(...skipping 25 matching lines...) Expand all
874 #if defined (OS_WIN) 931 #if defined (OS_WIN)
875 template <typename R, typename T, typename U, typename P1, typename X1> 932 template <typename R, typename T, typename U, typename P1, typename X1>
876 inline MutantFunctor<R, Tuple0> 933 inline MutantFunctor<R, Tuple0>
877 CreateFunctor(T* obj, R (__stdcall U::*method)(X1), const P1& p1) { 934 CreateFunctor(T* obj, R (__stdcall U::*method)(X1), const P1& p1) {
878 MutantRunner<R, Tuple0>* t = 935 MutantRunner<R, Tuple0>* t =
879 new Mutant<R, T, R (__stdcall U::*)(X1), 936 new Mutant<R, T, R (__stdcall U::*)(X1),
880 Tuple1<P1>, Tuple0> 937 Tuple1<P1>, Tuple0>
881 (obj, method, MakeTuple(p1)); 938 (obj, method, MakeTuple(p1));
882 return MutantFunctor<R, Tuple0>(t); 939 return MutantFunctor<R, Tuple0>(t);
883 } 940 }
941 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
942 template <typename R, typename T, typename U, typename P1, typename X1>
943 inline MutantFunctor<R, Tuple0>
944 CreateFunctor(T** obj, R (__stdcall U::*method)(X1), const P1& p1) {
945 MutantRunner<R, Tuple0>* t =
946 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1),
947 Tuple1<P1>, Tuple0>
948 (obj, method, MakeTuple(p1));
949 return MutantFunctor<R, Tuple0>(t);
950 }
951 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
884 #endif // OS_WIN 952 #endif // OS_WIN
885 953
886 // 1 - 1 954 // 1 - 1
887 template <typename R, typename T, typename U, typename P1, typename A1, 955 template <typename R, typename T, typename U, typename P1, typename A1,
888 typename X1> 956 typename X1>
889 inline MutantFunctor<R, Tuple1<A1> > 957 inline MutantFunctor<R, Tuple1<A1> >
890 CreateFunctor(T* obj, R (U::*method)(X1, A1), const P1& p1) { 958 CreateFunctor(T* obj, R (U::*method)(X1, A1), const P1& p1) {
891 MutantRunner<R, Tuple1<A1> >* t = 959 MutantRunner<R, Tuple1<A1> >* t =
892 new Mutant<R, T, R (U::*)(X1, A1), 960 new Mutant<R, T, R (U::*)(X1, A1),
893 Tuple1<P1>, Tuple1<A1> > 961 Tuple1<P1>, Tuple1<A1> >
(...skipping 28 matching lines...) Expand all
922 template <typename R, typename T, typename U, typename P1, typename A1, 990 template <typename R, typename T, typename U, typename P1, typename A1,
923 typename X1> 991 typename X1>
924 inline MutantFunctor<R, Tuple1<A1> > 992 inline MutantFunctor<R, Tuple1<A1> >
925 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, A1), const P1& p1) { 993 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, A1), const P1& p1) {
926 MutantRunner<R, Tuple1<A1> >* t = 994 MutantRunner<R, Tuple1<A1> >* t =
927 new Mutant<R, T, R (__stdcall U::*)(X1, A1), 995 new Mutant<R, T, R (__stdcall U::*)(X1, A1),
928 Tuple1<P1>, Tuple1<A1> > 996 Tuple1<P1>, Tuple1<A1> >
929 (obj, method, MakeTuple(p1)); 997 (obj, method, MakeTuple(p1));
930 return MutantFunctor<R, Tuple1<A1> >(t); 998 return MutantFunctor<R, Tuple1<A1> >(t);
931 } 999 }
1000 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1001 template <typename R, typename T, typename U, typename P1, typename A1,
1002 typename X1>
1003 inline MutantFunctor<R, Tuple1<A1> >
1004 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, A1), const P1& p1) {
1005 MutantRunner<R, Tuple1<A1> >* t =
1006 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, A1),
1007 Tuple1<P1>, Tuple1<A1> >
1008 (obj, method, MakeTuple(p1));
1009 return MutantFunctor<R, Tuple1<A1> >(t);
1010 }
1011 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
932 #endif // OS_WIN 1012 #endif // OS_WIN
933 1013
934 // 1 - 2 1014 // 1 - 2
935 template <typename R, typename T, typename U, typename P1, typename A1, 1015 template <typename R, typename T, typename U, typename P1, typename A1,
936 typename A2, typename X1> 1016 typename A2, typename X1>
937 inline MutantFunctor<R, Tuple2<A1, A2> > 1017 inline MutantFunctor<R, Tuple2<A1, A2> >
938 CreateFunctor(T* obj, R (U::*method)(X1, A1, A2), const P1& p1) { 1018 CreateFunctor(T* obj, R (U::*method)(X1, A1, A2), const P1& p1) {
939 MutantRunner<R, Tuple2<A1, A2> >* t = 1019 MutantRunner<R, Tuple2<A1, A2> >* t =
940 new Mutant<R, T, R (U::*)(X1, A1, A2), 1020 new Mutant<R, T, R (U::*)(X1, A1, A2),
941 Tuple1<P1>, Tuple2<A1, A2> > 1021 Tuple1<P1>, Tuple2<A1, A2> >
(...skipping 28 matching lines...) Expand all
970 template <typename R, typename T, typename U, typename P1, typename A1, 1050 template <typename R, typename T, typename U, typename P1, typename A1,
971 typename A2, typename X1> 1051 typename A2, typename X1>
972 inline MutantFunctor<R, Tuple2<A1, A2> > 1052 inline MutantFunctor<R, Tuple2<A1, A2> >
973 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, A1, A2), const P1& p1) { 1053 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, A1, A2), const P1& p1) {
974 MutantRunner<R, Tuple2<A1, A2> >* t = 1054 MutantRunner<R, Tuple2<A1, A2> >* t =
975 new Mutant<R, T, R (__stdcall U::*)(X1, A1, A2), 1055 new Mutant<R, T, R (__stdcall U::*)(X1, A1, A2),
976 Tuple1<P1>, Tuple2<A1, A2> > 1056 Tuple1<P1>, Tuple2<A1, A2> >
977 (obj, method, MakeTuple(p1)); 1057 (obj, method, MakeTuple(p1));
978 return MutantFunctor<R, Tuple2<A1, A2> >(t); 1058 return MutantFunctor<R, Tuple2<A1, A2> >(t);
979 } 1059 }
1060 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1061 template <typename R, typename T, typename U, typename P1, typename A1,
1062 typename A2, typename X1>
1063 inline MutantFunctor<R, Tuple2<A1, A2> >
1064 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, A1, A2), const P1& p1) {
1065 MutantRunner<R, Tuple2<A1, A2> >* t =
1066 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, A1, A2),
1067 Tuple1<P1>, Tuple2<A1, A2> >
1068 (obj, method, MakeTuple(p1));
1069 return MutantFunctor<R, Tuple2<A1, A2> >(t);
1070 }
1071 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
980 #endif // OS_WIN 1072 #endif // OS_WIN
981 1073
982 // 1 - 3 1074 // 1 - 3
983 template <typename R, typename T, typename U, typename P1, typename A1, 1075 template <typename R, typename T, typename U, typename P1, typename A1,
984 typename A2, typename A3, typename X1> 1076 typename A2, typename A3, typename X1>
985 inline MutantFunctor<R, Tuple3<A1, A2, A3> > 1077 inline MutantFunctor<R, Tuple3<A1, A2, A3> >
986 CreateFunctor(T* obj, R (U::*method)(X1, A1, A2, A3), const P1& p1) { 1078 CreateFunctor(T* obj, R (U::*method)(X1, A1, A2, A3), const P1& p1) {
987 MutantRunner<R, Tuple3<A1, A2, A3> >* t = 1079 MutantRunner<R, Tuple3<A1, A2, A3> >* t =
988 new Mutant<R, T, R (U::*)(X1, A1, A2, A3), 1080 new Mutant<R, T, R (U::*)(X1, A1, A2, A3),
989 Tuple1<P1>, Tuple3<A1, A2, A3> > 1081 Tuple1<P1>, Tuple3<A1, A2, A3> >
(...skipping 29 matching lines...) Expand all
1019 template <typename R, typename T, typename U, typename P1, typename A1, 1111 template <typename R, typename T, typename U, typename P1, typename A1,
1020 typename A2, typename A3, typename X1> 1112 typename A2, typename A3, typename X1>
1021 inline MutantFunctor<R, Tuple3<A1, A2, A3> > 1113 inline MutantFunctor<R, Tuple3<A1, A2, A3> >
1022 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, A1, A2, A3), const P1& p1) { 1114 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, A1, A2, A3), const P1& p1) {
1023 MutantRunner<R, Tuple3<A1, A2, A3> >* t = 1115 MutantRunner<R, Tuple3<A1, A2, A3> >* t =
1024 new Mutant<R, T, R (__stdcall U::*)(X1, A1, A2, A3), 1116 new Mutant<R, T, R (__stdcall U::*)(X1, A1, A2, A3),
1025 Tuple1<P1>, Tuple3<A1, A2, A3> > 1117 Tuple1<P1>, Tuple3<A1, A2, A3> >
1026 (obj, method, MakeTuple(p1)); 1118 (obj, method, MakeTuple(p1));
1027 return MutantFunctor<R, Tuple3<A1, A2, A3> >(t); 1119 return MutantFunctor<R, Tuple3<A1, A2, A3> >(t);
1028 } 1120 }
1121 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1122 template <typename R, typename T, typename U, typename P1, typename A1,
1123 typename A2, typename A3, typename X1>
1124 inline MutantFunctor<R, Tuple3<A1, A2, A3> >
1125 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, A1, A2, A3), const P1& p1) {
1126 MutantRunner<R, Tuple3<A1, A2, A3> >* t =
1127 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, A1, A2, A3),
1128 Tuple1<P1>, Tuple3<A1, A2, A3> >
1129 (obj, method, MakeTuple(p1));
1130 return MutantFunctor<R, Tuple3<A1, A2, A3> >(t);
1131 }
1132 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1029 #endif // OS_WIN 1133 #endif // OS_WIN
1030 1134
1031 // 1 - 4 1135 // 1 - 4
1032 template <typename R, typename T, typename U, typename P1, typename A1, 1136 template <typename R, typename T, typename U, typename P1, typename A1,
1033 typename A2, typename A3, typename A4, typename X1> 1137 typename A2, typename A3, typename A4, typename X1>
1034 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> > 1138 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> >
1035 CreateFunctor(T* obj, R (U::*method)(X1, A1, A2, A3, A4), const P1& p1) { 1139 CreateFunctor(T* obj, R (U::*method)(X1, A1, A2, A3, A4), const P1& p1) {
1036 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t = 1140 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t =
1037 new Mutant<R, T, R (U::*)(X1, A1, A2, A3, A4), 1141 new Mutant<R, T, R (U::*)(X1, A1, A2, A3, A4),
1038 Tuple1<P1>, Tuple4<A1, A2, A3, A4> > 1142 Tuple1<P1>, Tuple4<A1, A2, A3, A4> >
(...skipping 30 matching lines...) Expand all
1069 typename A2, typename A3, typename A4, typename X1> 1173 typename A2, typename A3, typename A4, typename X1>
1070 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> > 1174 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> >
1071 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, A1, A2, A3, A4), 1175 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, A1, A2, A3, A4),
1072 const P1& p1) { 1176 const P1& p1) {
1073 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t = 1177 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t =
1074 new Mutant<R, T, R (__stdcall U::*)(X1, A1, A2, A3, A4), 1178 new Mutant<R, T, R (__stdcall U::*)(X1, A1, A2, A3, A4),
1075 Tuple1<P1>, Tuple4<A1, A2, A3, A4> > 1179 Tuple1<P1>, Tuple4<A1, A2, A3, A4> >
1076 (obj, method, MakeTuple(p1)); 1180 (obj, method, MakeTuple(p1));
1077 return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t); 1181 return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t);
1078 } 1182 }
1183 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1184 template <typename R, typename T, typename U, typename P1, typename A1,
1185 typename A2, typename A3, typename A4, typename X1>
1186 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> >
1187 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, A1, A2, A3, A4),
1188 const P1& p1) {
1189 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t =
1190 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, A1, A2, A3, A4),
1191 Tuple1<P1>, Tuple4<A1, A2, A3, A4> >
1192 (obj, method, MakeTuple(p1));
1193 return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t);
1194 }
1195 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1079 #endif // OS_WIN 1196 #endif // OS_WIN
1080 1197
1081 // 2 - 0 1198 // 2 - 0
1082 template <typename R, typename T, typename U, typename P1, typename P2, 1199 template <typename R, typename T, typename U, typename P1, typename P2,
1083 typename X1, typename X2> 1200 typename X1, typename X2>
1084 inline MutantFunctor<R, Tuple0> 1201 inline MutantFunctor<R, Tuple0>
1085 CreateFunctor(T* obj, R (U::*method)(X1, X2), const P1& p1, const P2& p2) { 1202 CreateFunctor(T* obj, R (U::*method)(X1, X2), const P1& p1, const P2& p2) {
1086 MutantRunner<R, Tuple0>* t = 1203 MutantRunner<R, Tuple0>* t =
1087 new Mutant<R, T, R (U::*)(X1, X2), 1204 new Mutant<R, T, R (U::*)(X1, X2),
1088 Tuple2<P1, P2>, Tuple0> 1205 Tuple2<P1, P2>, Tuple0>
(...skipping 29 matching lines...) Expand all
1118 typename X1, typename X2> 1235 typename X1, typename X2>
1119 inline MutantFunctor<R, Tuple0> 1236 inline MutantFunctor<R, Tuple0>
1120 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2), const P1& p1, 1237 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2), const P1& p1,
1121 const P2& p2) { 1238 const P2& p2) {
1122 MutantRunner<R, Tuple0>* t = 1239 MutantRunner<R, Tuple0>* t =
1123 new Mutant<R, T, R (__stdcall U::*)(X1, X2), 1240 new Mutant<R, T, R (__stdcall U::*)(X1, X2),
1124 Tuple2<P1, P2>, Tuple0> 1241 Tuple2<P1, P2>, Tuple0>
1125 (obj, method, MakeTuple(p1, p2)); 1242 (obj, method, MakeTuple(p1, p2));
1126 return MutantFunctor<R, Tuple0>(t); 1243 return MutantFunctor<R, Tuple0>(t);
1127 } 1244 }
1245 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1246 template <typename R, typename T, typename U, typename P1, typename P2,
1247 typename X1, typename X2>
1248 inline MutantFunctor<R, Tuple0>
1249 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2), const P1& p1,
1250 const P2& p2) {
1251 MutantRunner<R, Tuple0>* t =
1252 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2),
1253 Tuple2<P1, P2>, Tuple0>
1254 (obj, method, MakeTuple(p1, p2));
1255 return MutantFunctor<R, Tuple0>(t);
1256 }
1257 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1128 #endif // OS_WIN 1258 #endif // OS_WIN
1129 1259
1130 // 2 - 1 1260 // 2 - 1
1131 template <typename R, typename T, typename U, typename P1, typename P2, 1261 template <typename R, typename T, typename U, typename P1, typename P2,
1132 typename A1, typename X1, typename X2> 1262 typename A1, typename X1, typename X2>
1133 inline MutantFunctor<R, Tuple1<A1> > 1263 inline MutantFunctor<R, Tuple1<A1> >
1134 CreateFunctor(T* obj, R (U::*method)(X1, X2, A1), const P1& p1, const P2& p2) { 1264 CreateFunctor(T* obj, R (U::*method)(X1, X2, A1), const P1& p1, const P2& p2) {
1135 MutantRunner<R, Tuple1<A1> >* t = 1265 MutantRunner<R, Tuple1<A1> >* t =
1136 new Mutant<R, T, R (U::*)(X1, X2, A1), 1266 new Mutant<R, T, R (U::*)(X1, X2, A1),
1137 Tuple2<P1, P2>, Tuple1<A1> > 1267 Tuple2<P1, P2>, Tuple1<A1> >
(...skipping 30 matching lines...) Expand all
1168 typename A1, typename X1, typename X2> 1298 typename A1, typename X1, typename X2>
1169 inline MutantFunctor<R, Tuple1<A1> > 1299 inline MutantFunctor<R, Tuple1<A1> >
1170 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, A1), const P1& p1, 1300 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, A1), const P1& p1,
1171 const P2& p2) { 1301 const P2& p2) {
1172 MutantRunner<R, Tuple1<A1> >* t = 1302 MutantRunner<R, Tuple1<A1> >* t =
1173 new Mutant<R, T, R (__stdcall U::*)(X1, X2, A1), 1303 new Mutant<R, T, R (__stdcall U::*)(X1, X2, A1),
1174 Tuple2<P1, P2>, Tuple1<A1> > 1304 Tuple2<P1, P2>, Tuple1<A1> >
1175 (obj, method, MakeTuple(p1, p2)); 1305 (obj, method, MakeTuple(p1, p2));
1176 return MutantFunctor<R, Tuple1<A1> >(t); 1306 return MutantFunctor<R, Tuple1<A1> >(t);
1177 } 1307 }
1308 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1309 template <typename R, typename T, typename U, typename P1, typename P2,
1310 typename A1, typename X1, typename X2>
1311 inline MutantFunctor<R, Tuple1<A1> >
1312 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, A1), const P1& p1,
1313 const P2& p2) {
1314 MutantRunner<R, Tuple1<A1> >* t =
1315 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, A1),
1316 Tuple2<P1, P2>, Tuple1<A1> >
1317 (obj, method, MakeTuple(p1, p2));
1318 return MutantFunctor<R, Tuple1<A1> >(t);
1319 }
1320 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1178 #endif // OS_WIN 1321 #endif // OS_WIN
1179 1322
1180 // 2 - 2 1323 // 2 - 2
1181 template <typename R, typename T, typename U, typename P1, typename P2, 1324 template <typename R, typename T, typename U, typename P1, typename P2,
1182 typename A1, typename A2, typename X1, typename X2> 1325 typename A1, typename A2, typename X1, typename X2>
1183 inline MutantFunctor<R, Tuple2<A1, A2> > 1326 inline MutantFunctor<R, Tuple2<A1, A2> >
1184 CreateFunctor(T* obj, R (U::*method)(X1, X2, A1, A2), const P1& p1, 1327 CreateFunctor(T* obj, R (U::*method)(X1, X2, A1, A2), const P1& p1,
1185 const P2& p2) { 1328 const P2& p2) {
1186 MutantRunner<R, Tuple2<A1, A2> >* t = 1329 MutantRunner<R, Tuple2<A1, A2> >* t =
1187 new Mutant<R, T, R (U::*)(X1, X2, A1, A2), 1330 new Mutant<R, T, R (U::*)(X1, X2, A1, A2),
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1220 typename A1, typename A2, typename X1, typename X2> 1363 typename A1, typename A2, typename X1, typename X2>
1221 inline MutantFunctor<R, Tuple2<A1, A2> > 1364 inline MutantFunctor<R, Tuple2<A1, A2> >
1222 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, A1, A2), const P1& p1, 1365 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, A1, A2), const P1& p1,
1223 const P2& p2) { 1366 const P2& p2) {
1224 MutantRunner<R, Tuple2<A1, A2> >* t = 1367 MutantRunner<R, Tuple2<A1, A2> >* t =
1225 new Mutant<R, T, R (__stdcall U::*)(X1, X2, A1, A2), 1368 new Mutant<R, T, R (__stdcall U::*)(X1, X2, A1, A2),
1226 Tuple2<P1, P2>, Tuple2<A1, A2> > 1369 Tuple2<P1, P2>, Tuple2<A1, A2> >
1227 (obj, method, MakeTuple(p1, p2)); 1370 (obj, method, MakeTuple(p1, p2));
1228 return MutantFunctor<R, Tuple2<A1, A2> >(t); 1371 return MutantFunctor<R, Tuple2<A1, A2> >(t);
1229 } 1372 }
1373 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1374 template <typename R, typename T, typename U, typename P1, typename P2,
1375 typename A1, typename A2, typename X1, typename X2>
1376 inline MutantFunctor<R, Tuple2<A1, A2> >
1377 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, A1, A2), const P1& p1,
1378 const P2& p2) {
1379 MutantRunner<R, Tuple2<A1, A2> >* t =
1380 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, A1, A2),
1381 Tuple2<P1, P2>, Tuple2<A1, A2> >
1382 (obj, method, MakeTuple(p1, p2));
1383 return MutantFunctor<R, Tuple2<A1, A2> >(t);
1384 }
1385 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1230 #endif // OS_WIN 1386 #endif // OS_WIN
1231 1387
1232 // 2 - 3 1388 // 2 - 3
1233 template <typename R, typename T, typename U, typename P1, typename P2, 1389 template <typename R, typename T, typename U, typename P1, typename P2,
1234 typename A1, typename A2, typename A3, typename X1, typename X2> 1390 typename A1, typename A2, typename A3, typename X1, typename X2>
1235 inline MutantFunctor<R, Tuple3<A1, A2, A3> > 1391 inline MutantFunctor<R, Tuple3<A1, A2, A3> >
1236 CreateFunctor(T* obj, R (U::*method)(X1, X2, A1, A2, A3), const P1& p1, 1392 CreateFunctor(T* obj, R (U::*method)(X1, X2, A1, A2, A3), const P1& p1,
1237 const P2& p2) { 1393 const P2& p2) {
1238 MutantRunner<R, Tuple3<A1, A2, A3> >* t = 1394 MutantRunner<R, Tuple3<A1, A2, A3> >* t =
1239 new Mutant<R, T, R (U::*)(X1, X2, A1, A2, A3), 1395 new Mutant<R, T, R (U::*)(X1, X2, A1, A2, A3),
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1272 typename A1, typename A2, typename A3, typename X1, typename X2> 1428 typename A1, typename A2, typename A3, typename X1, typename X2>
1273 inline MutantFunctor<R, Tuple3<A1, A2, A3> > 1429 inline MutantFunctor<R, Tuple3<A1, A2, A3> >
1274 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, A1, A2, A3), 1430 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, A1, A2, A3),
1275 const P1& p1, const P2& p2) { 1431 const P1& p1, const P2& p2) {
1276 MutantRunner<R, Tuple3<A1, A2, A3> >* t = 1432 MutantRunner<R, Tuple3<A1, A2, A3> >* t =
1277 new Mutant<R, T, R (__stdcall U::*)(X1, X2, A1, A2, A3), 1433 new Mutant<R, T, R (__stdcall U::*)(X1, X2, A1, A2, A3),
1278 Tuple2<P1, P2>, Tuple3<A1, A2, A3> > 1434 Tuple2<P1, P2>, Tuple3<A1, A2, A3> >
1279 (obj, method, MakeTuple(p1, p2)); 1435 (obj, method, MakeTuple(p1, p2));
1280 return MutantFunctor<R, Tuple3<A1, A2, A3> >(t); 1436 return MutantFunctor<R, Tuple3<A1, A2, A3> >(t);
1281 } 1437 }
1438 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1439 template <typename R, typename T, typename U, typename P1, typename P2,
1440 typename A1, typename A2, typename A3, typename X1, typename X2>
1441 inline MutantFunctor<R, Tuple3<A1, A2, A3> >
1442 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, A1, A2, A3),
1443 const P1& p1, const P2& p2) {
1444 MutantRunner<R, Tuple3<A1, A2, A3> >* t =
1445 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, A1, A2, A3),
1446 Tuple2<P1, P2>, Tuple3<A1, A2, A3> >
1447 (obj, method, MakeTuple(p1, p2));
1448 return MutantFunctor<R, Tuple3<A1, A2, A3> >(t);
1449 }
1450 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1282 #endif // OS_WIN 1451 #endif // OS_WIN
1283 1452
1284 // 2 - 4 1453 // 2 - 4
1285 template <typename R, typename T, typename U, typename P1, typename P2, 1454 template <typename R, typename T, typename U, typename P1, typename P2,
1286 typename A1, typename A2, typename A3, typename A4, typename X1, 1455 typename A1, typename A2, typename A3, typename A4, typename X1,
1287 typename X2> 1456 typename X2>
1288 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> > 1457 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> >
1289 CreateFunctor(T* obj, R (U::*method)(X1, X2, A1, A2, A3, A4), const P1& p1, 1458 CreateFunctor(T* obj, R (U::*method)(X1, X2, A1, A2, A3, A4), const P1& p1,
1290 const P2& p2) { 1459 const P2& p2) {
1291 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t = 1460 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t =
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1328 typename X2> 1497 typename X2>
1329 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> > 1498 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> >
1330 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, A1, A2, A3, A4), 1499 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, A1, A2, A3, A4),
1331 const P1& p1, const P2& p2) { 1500 const P1& p1, const P2& p2) {
1332 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t = 1501 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t =
1333 new Mutant<R, T, R (__stdcall U::*)(X1, X2, A1, A2, A3, A4), 1502 new Mutant<R, T, R (__stdcall U::*)(X1, X2, A1, A2, A3, A4),
1334 Tuple2<P1, P2>, Tuple4<A1, A2, A3, A4> > 1503 Tuple2<P1, P2>, Tuple4<A1, A2, A3, A4> >
1335 (obj, method, MakeTuple(p1, p2)); 1504 (obj, method, MakeTuple(p1, p2));
1336 return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t); 1505 return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t);
1337 } 1506 }
1507 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1508 template <typename R, typename T, typename U, typename P1, typename P2,
1509 typename A1, typename A2, typename A3, typename A4, typename X1,
1510 typename X2>
1511 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> >
1512 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, A1, A2, A3, A4),
1513 const P1& p1, const P2& p2) {
1514 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t =
1515 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, A1, A2, A3, A4),
1516 Tuple2<P1, P2>, Tuple4<A1, A2, A3, A4> >
1517 (obj, method, MakeTuple(p1, p2));
1518 return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t);
1519 }
1520 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1338 #endif // OS_WIN 1521 #endif // OS_WIN
1339 1522
1340 // 3 - 0 1523 // 3 - 0
1341 template <typename R, typename T, typename U, typename P1, typename P2, 1524 template <typename R, typename T, typename U, typename P1, typename P2,
1342 typename P3, typename X1, typename X2, typename X3> 1525 typename P3, typename X1, typename X2, typename X3>
1343 inline MutantFunctor<R, Tuple0> 1526 inline MutantFunctor<R, Tuple0>
1344 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3), const P1& p1, const P2& p2, 1527 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3), const P1& p1, const P2& p2,
1345 const P3& p3) { 1528 const P3& p3) {
1346 MutantRunner<R, Tuple0>* t = 1529 MutantRunner<R, Tuple0>* t =
1347 new Mutant<R, T, R (U::*)(X1, X2, X3), 1530 new Mutant<R, T, R (U::*)(X1, X2, X3),
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1381 typename P3, typename X1, typename X2, typename X3> 1564 typename P3, typename X1, typename X2, typename X3>
1382 inline MutantFunctor<R, Tuple0> 1565 inline MutantFunctor<R, Tuple0>
1383 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3), const P1& p1, 1566 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3), const P1& p1,
1384 const P2& p2, const P3& p3) { 1567 const P2& p2, const P3& p3) {
1385 MutantRunner<R, Tuple0>* t = 1568 MutantRunner<R, Tuple0>* t =
1386 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3), 1569 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3),
1387 Tuple3<P1, P2, P3>, Tuple0> 1570 Tuple3<P1, P2, P3>, Tuple0>
1388 (obj, method, MakeTuple(p1, p2, p3)); 1571 (obj, method, MakeTuple(p1, p2, p3));
1389 return MutantFunctor<R, Tuple0>(t); 1572 return MutantFunctor<R, Tuple0>(t);
1390 } 1573 }
1574 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1575 template <typename R, typename T, typename U, typename P1, typename P2,
1576 typename P3, typename X1, typename X2, typename X3>
1577 inline MutantFunctor<R, Tuple0>
1578 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3), const P1& p1,
1579 const P2& p2, const P3& p3) {
1580 MutantRunner<R, Tuple0>* t =
1581 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3),
1582 Tuple3<P1, P2, P3>, Tuple0>
1583 (obj, method, MakeTuple(p1, p2, p3));
1584 return MutantFunctor<R, Tuple0>(t);
1585 }
1586 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1391 #endif // OS_WIN 1587 #endif // OS_WIN
1392 1588
1393 // 3 - 1 1589 // 3 - 1
1394 template <typename R, typename T, typename U, typename P1, typename P2, 1590 template <typename R, typename T, typename U, typename P1, typename P2,
1395 typename P3, typename A1, typename X1, typename X2, typename X3> 1591 typename P3, typename A1, typename X1, typename X2, typename X3>
1396 inline MutantFunctor<R, Tuple1<A1> > 1592 inline MutantFunctor<R, Tuple1<A1> >
1397 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, A1), const P1& p1, 1593 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, A1), const P1& p1,
1398 const P2& p2, const P3& p3) { 1594 const P2& p2, const P3& p3) {
1399 MutantRunner<R, Tuple1<A1> >* t = 1595 MutantRunner<R, Tuple1<A1> >* t =
1400 new Mutant<R, T, R (U::*)(X1, X2, X3, A1), 1596 new Mutant<R, T, R (U::*)(X1, X2, X3, A1),
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1434 typename P3, typename A1, typename X1, typename X2, typename X3> 1630 typename P3, typename A1, typename X1, typename X2, typename X3>
1435 inline MutantFunctor<R, Tuple1<A1> > 1631 inline MutantFunctor<R, Tuple1<A1> >
1436 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, A1), const P1& p1, 1632 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, A1), const P1& p1,
1437 const P2& p2, const P3& p3) { 1633 const P2& p2, const P3& p3) {
1438 MutantRunner<R, Tuple1<A1> >* t = 1634 MutantRunner<R, Tuple1<A1> >* t =
1439 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, A1), 1635 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, A1),
1440 Tuple3<P1, P2, P3>, Tuple1<A1> > 1636 Tuple3<P1, P2, P3>, Tuple1<A1> >
1441 (obj, method, MakeTuple(p1, p2, p3)); 1637 (obj, method, MakeTuple(p1, p2, p3));
1442 return MutantFunctor<R, Tuple1<A1> >(t); 1638 return MutantFunctor<R, Tuple1<A1> >(t);
1443 } 1639 }
1640 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1641 template <typename R, typename T, typename U, typename P1, typename P2,
1642 typename P3, typename A1, typename X1, typename X2, typename X3>
1643 inline MutantFunctor<R, Tuple1<A1> >
1644 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, A1), const P1& p1,
1645 const P2& p2, const P3& p3) {
1646 MutantRunner<R, Tuple1<A1> >* t =
1647 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, A1),
1648 Tuple3<P1, P2, P3>, Tuple1<A1> >
1649 (obj, method, MakeTuple(p1, p2, p3));
1650 return MutantFunctor<R, Tuple1<A1> >(t);
1651 }
1652 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1444 #endif // OS_WIN 1653 #endif // OS_WIN
1445 1654
1446 // 3 - 2 1655 // 3 - 2
1447 template <typename R, typename T, typename U, typename P1, typename P2, 1656 template <typename R, typename T, typename U, typename P1, typename P2,
1448 typename P3, typename A1, typename A2, typename X1, typename X2, 1657 typename P3, typename A1, typename A2, typename X1, typename X2,
1449 typename X3> 1658 typename X3>
1450 inline MutantFunctor<R, Tuple2<A1, A2> > 1659 inline MutantFunctor<R, Tuple2<A1, A2> >
1451 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, A1, A2), const P1& p1, 1660 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, A1, A2), const P1& p1,
1452 const P2& p2, const P3& p3) { 1661 const P2& p2, const P3& p3) {
1453 MutantRunner<R, Tuple2<A1, A2> >* t = 1662 MutantRunner<R, Tuple2<A1, A2> >* t =
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1490 typename X3> 1699 typename X3>
1491 inline MutantFunctor<R, Tuple2<A1, A2> > 1700 inline MutantFunctor<R, Tuple2<A1, A2> >
1492 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, A1, A2), 1701 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, A1, A2),
1493 const P1& p1, const P2& p2, const P3& p3) { 1702 const P1& p1, const P2& p2, const P3& p3) {
1494 MutantRunner<R, Tuple2<A1, A2> >* t = 1703 MutantRunner<R, Tuple2<A1, A2> >* t =
1495 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, A1, A2), 1704 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, A1, A2),
1496 Tuple3<P1, P2, P3>, Tuple2<A1, A2> > 1705 Tuple3<P1, P2, P3>, Tuple2<A1, A2> >
1497 (obj, method, MakeTuple(p1, p2, p3)); 1706 (obj, method, MakeTuple(p1, p2, p3));
1498 return MutantFunctor<R, Tuple2<A1, A2> >(t); 1707 return MutantFunctor<R, Tuple2<A1, A2> >(t);
1499 } 1708 }
1709 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1710 template <typename R, typename T, typename U, typename P1, typename P2,
1711 typename P3, typename A1, typename A2, typename X1, typename X2,
1712 typename X3>
1713 inline MutantFunctor<R, Tuple2<A1, A2> >
1714 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, A1, A2),
1715 const P1& p1, const P2& p2, const P3& p3) {
1716 MutantRunner<R, Tuple2<A1, A2> >* t =
1717 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, A1, A2),
1718 Tuple3<P1, P2, P3>, Tuple2<A1, A2> >
1719 (obj, method, MakeTuple(p1, p2, p3));
1720 return MutantFunctor<R, Tuple2<A1, A2> >(t);
1721 }
1722 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1500 #endif // OS_WIN 1723 #endif // OS_WIN
1501 1724
1502 // 3 - 3 1725 // 3 - 3
1503 template <typename R, typename T, typename U, typename P1, typename P2, 1726 template <typename R, typename T, typename U, typename P1, typename P2,
1504 typename P3, typename A1, typename A2, typename A3, typename X1, 1727 typename P3, typename A1, typename A2, typename A3, typename X1,
1505 typename X2, typename X3> 1728 typename X2, typename X3>
1506 inline MutantFunctor<R, Tuple3<A1, A2, A3> > 1729 inline MutantFunctor<R, Tuple3<A1, A2, A3> >
1507 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, A1, A2, A3), const P1& p1, 1730 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, A1, A2, A3), const P1& p1,
1508 const P2& p2, const P3& p3) { 1731 const P2& p2, const P3& p3) {
1509 MutantRunner<R, Tuple3<A1, A2, A3> >* t = 1732 MutantRunner<R, Tuple3<A1, A2, A3> >* t =
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1546 typename X2, typename X3> 1769 typename X2, typename X3>
1547 inline MutantFunctor<R, Tuple3<A1, A2, A3> > 1770 inline MutantFunctor<R, Tuple3<A1, A2, A3> >
1548 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, A1, A2, A3), 1771 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, A1, A2, A3),
1549 const P1& p1, const P2& p2, const P3& p3) { 1772 const P1& p1, const P2& p2, const P3& p3) {
1550 MutantRunner<R, Tuple3<A1, A2, A3> >* t = 1773 MutantRunner<R, Tuple3<A1, A2, A3> >* t =
1551 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, A1, A2, A3), 1774 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, A1, A2, A3),
1552 Tuple3<P1, P2, P3>, Tuple3<A1, A2, A3> > 1775 Tuple3<P1, P2, P3>, Tuple3<A1, A2, A3> >
1553 (obj, method, MakeTuple(p1, p2, p3)); 1776 (obj, method, MakeTuple(p1, p2, p3));
1554 return MutantFunctor<R, Tuple3<A1, A2, A3> >(t); 1777 return MutantFunctor<R, Tuple3<A1, A2, A3> >(t);
1555 } 1778 }
1779 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1780 template <typename R, typename T, typename U, typename P1, typename P2,
1781 typename P3, typename A1, typename A2, typename A3, typename X1,
1782 typename X2, typename X3>
1783 inline MutantFunctor<R, Tuple3<A1, A2, A3> >
1784 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, A1, A2, A3),
1785 const P1& p1, const P2& p2, const P3& p3) {
1786 MutantRunner<R, Tuple3<A1, A2, A3> >* t =
1787 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, A1, A2, A3),
1788 Tuple3<P1, P2, P3>, Tuple3<A1, A2, A3> >
1789 (obj, method, MakeTuple(p1, p2, p3));
1790 return MutantFunctor<R, Tuple3<A1, A2, A3> >(t);
1791 }
1792 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1556 #endif // OS_WIN 1793 #endif // OS_WIN
1557 1794
1558 // 3 - 4 1795 // 3 - 4
1559 template <typename R, typename T, typename U, typename P1, typename P2, 1796 template <typename R, typename T, typename U, typename P1, typename P2,
1560 typename P3, typename A1, typename A2, typename A3, typename A4, 1797 typename P3, typename A1, typename A2, typename A3, typename A4,
1561 typename X1, typename X2, typename X3> 1798 typename X1, typename X2, typename X3>
1562 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> > 1799 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> >
1563 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, A1, A2, A3, A4), const P1& p1, 1800 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, A1, A2, A3, A4), const P1& p1,
1564 const P2& p2, const P3& p3) { 1801 const P2& p2, const P3& p3) {
1565 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t = 1802 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t =
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1603 typename X1, typename X2, typename X3> 1840 typename X1, typename X2, typename X3>
1604 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> > 1841 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> >
1605 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, A1, A2, A3, A4), 1842 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, A1, A2, A3, A4),
1606 const P1& p1, const P2& p2, const P3& p3) { 1843 const P1& p1, const P2& p2, const P3& p3) {
1607 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t = 1844 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t =
1608 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, A1, A2, A3, A4), 1845 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, A1, A2, A3, A4),
1609 Tuple3<P1, P2, P3>, Tuple4<A1, A2, A3, A4> > 1846 Tuple3<P1, P2, P3>, Tuple4<A1, A2, A3, A4> >
1610 (obj, method, MakeTuple(p1, p2, p3)); 1847 (obj, method, MakeTuple(p1, p2, p3));
1611 return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t); 1848 return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t);
1612 } 1849 }
1850 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1851 template <typename R, typename T, typename U, typename P1, typename P2,
1852 typename P3, typename A1, typename A2, typename A3, typename A4,
1853 typename X1, typename X2, typename X3>
1854 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> >
1855 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, A1, A2, A3, A4),
1856 const P1& p1, const P2& p2, const P3& p3) {
1857 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t =
1858 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, A1, A2, A3, A4),
1859 Tuple3<P1, P2, P3>, Tuple4<A1, A2, A3, A4> >
1860 (obj, method, MakeTuple(p1, p2, p3));
1861 return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t);
1862 }
1863 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1613 #endif // OS_WIN 1864 #endif // OS_WIN
1614 1865
1615 // 4 - 0 1866 // 4 - 0
1616 template <typename R, typename T, typename U, typename P1, typename P2, 1867 template <typename R, typename T, typename U, typename P1, typename P2,
1617 typename P3, typename P4, typename X1, typename X2, typename X3, 1868 typename P3, typename P4, typename X1, typename X2, typename X3,
1618 typename X4> 1869 typename X4>
1619 inline MutantFunctor<R, Tuple0> 1870 inline MutantFunctor<R, Tuple0>
1620 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, X4), const P1& p1, 1871 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, X4), const P1& p1,
1621 const P2& p2, const P3& p3, const P4& p4) { 1872 const P2& p2, const P3& p3, const P4& p4) {
1622 MutantRunner<R, Tuple0>* t = 1873 MutantRunner<R, Tuple0>* t =
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1659 typename X4> 1910 typename X4>
1660 inline MutantFunctor<R, Tuple0> 1911 inline MutantFunctor<R, Tuple0>
1661 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, X4), const P1& p1, 1912 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, X4), const P1& p1,
1662 const P2& p2, const P3& p3, const P4& p4) { 1913 const P2& p2, const P3& p3, const P4& p4) {
1663 MutantRunner<R, Tuple0>* t = 1914 MutantRunner<R, Tuple0>* t =
1664 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, X4), 1915 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, X4),
1665 Tuple4<P1, P2, P3, P4>, Tuple0> 1916 Tuple4<P1, P2, P3, P4>, Tuple0>
1666 (obj, method, MakeTuple(p1, p2, p3, p4)); 1917 (obj, method, MakeTuple(p1, p2, p3, p4));
1667 return MutantFunctor<R, Tuple0>(t); 1918 return MutantFunctor<R, Tuple0>(t);
1668 } 1919 }
1920 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1921 template <typename R, typename T, typename U, typename P1, typename P2,
1922 typename P3, typename P4, typename X1, typename X2, typename X3,
1923 typename X4>
1924 inline MutantFunctor<R, Tuple0>
1925 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, X4), const P1& p1,
1926 const P2& p2, const P3& p3, const P4& p4) {
1927 MutantRunner<R, Tuple0>* t =
1928 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, X4),
1929 Tuple4<P1, P2, P3, P4>, Tuple0>
1930 (obj, method, MakeTuple(p1, p2, p3, p4));
1931 return MutantFunctor<R, Tuple0>(t);
1932 }
1933 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1669 #endif // OS_WIN 1934 #endif // OS_WIN
1670 1935
1671 // 4 - 1 1936 // 4 - 1
1672 template <typename R, typename T, typename U, typename P1, typename P2, 1937 template <typename R, typename T, typename U, typename P1, typename P2,
1673 typename P3, typename P4, typename A1, typename X1, typename X2, 1938 typename P3, typename P4, typename A1, typename X1, typename X2,
1674 typename X3, typename X4> 1939 typename X3, typename X4>
1675 inline MutantFunctor<R, Tuple1<A1> > 1940 inline MutantFunctor<R, Tuple1<A1> >
1676 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, X4, A1), const P1& p1, 1941 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, X4, A1), const P1& p1,
1677 const P2& p2, const P3& p3, const P4& p4) { 1942 const P2& p2, const P3& p3, const P4& p4) {
1678 MutantRunner<R, Tuple1<A1> >* t = 1943 MutantRunner<R, Tuple1<A1> >* t =
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1715 typename X3, typename X4> 1980 typename X3, typename X4>
1716 inline MutantFunctor<R, Tuple1<A1> > 1981 inline MutantFunctor<R, Tuple1<A1> >
1717 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, X4, A1), 1982 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, X4, A1),
1718 const P1& p1, const P2& p2, const P3& p3, const P4& p4) { 1983 const P1& p1, const P2& p2, const P3& p3, const P4& p4) {
1719 MutantRunner<R, Tuple1<A1> >* t = 1984 MutantRunner<R, Tuple1<A1> >* t =
1720 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, X4, A1), 1985 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, X4, A1),
1721 Tuple4<P1, P2, P3, P4>, Tuple1<A1> > 1986 Tuple4<P1, P2, P3, P4>, Tuple1<A1> >
1722 (obj, method, MakeTuple(p1, p2, p3, p4)); 1987 (obj, method, MakeTuple(p1, p2, p3, p4));
1723 return MutantFunctor<R, Tuple1<A1> >(t); 1988 return MutantFunctor<R, Tuple1<A1> >(t);
1724 } 1989 }
1990 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1991 template <typename R, typename T, typename U, typename P1, typename P2,
1992 typename P3, typename P4, typename A1, typename X1, typename X2,
1993 typename X3, typename X4>
1994 inline MutantFunctor<R, Tuple1<A1> >
1995 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, X4, A1),
1996 const P1& p1, const P2& p2, const P3& p3, const P4& p4) {
1997 MutantRunner<R, Tuple1<A1> >* t =
1998 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, X4, A1),
1999 Tuple4<P1, P2, P3, P4>, Tuple1<A1> >
2000 (obj, method, MakeTuple(p1, p2, p3, p4));
2001 return MutantFunctor<R, Tuple1<A1> >(t);
2002 }
2003 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1725 #endif // OS_WIN 2004 #endif // OS_WIN
1726 2005
1727 // 4 - 2 2006 // 4 - 2
1728 template <typename R, typename T, typename U, typename P1, typename P2, 2007 template <typename R, typename T, typename U, typename P1, typename P2,
1729 typename P3, typename P4, typename A1, typename A2, typename X1, 2008 typename P3, typename P4, typename A1, typename A2, typename X1,
1730 typename X2, typename X3, typename X4> 2009 typename X2, typename X3, typename X4>
1731 inline MutantFunctor<R, Tuple2<A1, A2> > 2010 inline MutantFunctor<R, Tuple2<A1, A2> >
1732 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, X4, A1, A2), const P1& p1, 2011 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, X4, A1, A2), const P1& p1,
1733 const P2& p2, const P3& p3, const P4& p4) { 2012 const P2& p2, const P3& p3, const P4& p4) {
1734 MutantRunner<R, Tuple2<A1, A2> >* t = 2013 MutantRunner<R, Tuple2<A1, A2> >* t =
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1772 typename X2, typename X3, typename X4> 2051 typename X2, typename X3, typename X4>
1773 inline MutantFunctor<R, Tuple2<A1, A2> > 2052 inline MutantFunctor<R, Tuple2<A1, A2> >
1774 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, X4, A1, A2), 2053 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, X4, A1, A2),
1775 const P1& p1, const P2& p2, const P3& p3, const P4& p4) { 2054 const P1& p1, const P2& p2, const P3& p3, const P4& p4) {
1776 MutantRunner<R, Tuple2<A1, A2> >* t = 2055 MutantRunner<R, Tuple2<A1, A2> >* t =
1777 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, X4, A1, A2), 2056 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, X4, A1, A2),
1778 Tuple4<P1, P2, P3, P4>, Tuple2<A1, A2> > 2057 Tuple4<P1, P2, P3, P4>, Tuple2<A1, A2> >
1779 (obj, method, MakeTuple(p1, p2, p3, p4)); 2058 (obj, method, MakeTuple(p1, p2, p3, p4));
1780 return MutantFunctor<R, Tuple2<A1, A2> >(t); 2059 return MutantFunctor<R, Tuple2<A1, A2> >(t);
1781 } 2060 }
2061 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
2062 template <typename R, typename T, typename U, typename P1, typename P2,
2063 typename P3, typename P4, typename A1, typename A2, typename X1,
2064 typename X2, typename X3, typename X4>
2065 inline MutantFunctor<R, Tuple2<A1, A2> >
2066 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, X4, A1, A2),
2067 const P1& p1, const P2& p2, const P3& p3, const P4& p4) {
2068 MutantRunner<R, Tuple2<A1, A2> >* t =
2069 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, X4, A1, A2),
2070 Tuple4<P1, P2, P3, P4>, Tuple2<A1, A2> >
2071 (obj, method, MakeTuple(p1, p2, p3, p4));
2072 return MutantFunctor<R, Tuple2<A1, A2> >(t);
2073 }
2074 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1782 #endif // OS_WIN 2075 #endif // OS_WIN
1783 2076
1784 // 4 - 3 2077 // 4 - 3
1785 template <typename R, typename T, typename U, typename P1, typename P2, 2078 template <typename R, typename T, typename U, typename P1, typename P2,
1786 typename P3, typename P4, typename A1, typename A2, typename A3, 2079 typename P3, typename P4, typename A1, typename A2, typename A3,
1787 typename X1, typename X2, typename X3, typename X4> 2080 typename X1, typename X2, typename X3, typename X4>
1788 inline MutantFunctor<R, Tuple3<A1, A2, A3> > 2081 inline MutantFunctor<R, Tuple3<A1, A2, A3> >
1789 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, X4, A1, A2, A3), const P1& p1, 2082 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, X4, A1, A2, A3), const P1& p1,
1790 const P2& p2, const P3& p3, const P4& p4) { 2083 const P2& p2, const P3& p3, const P4& p4) {
1791 MutantRunner<R, Tuple3<A1, A2, A3> >* t = 2084 MutantRunner<R, Tuple3<A1, A2, A3> >* t =
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1829 typename X1, typename X2, typename X3, typename X4> 2122 typename X1, typename X2, typename X3, typename X4>
1830 inline MutantFunctor<R, Tuple3<A1, A2, A3> > 2123 inline MutantFunctor<R, Tuple3<A1, A2, A3> >
1831 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, X4, A1, A2, A3), 2124 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, X4, A1, A2, A3),
1832 const P1& p1, const P2& p2, const P3& p3, const P4& p4) { 2125 const P1& p1, const P2& p2, const P3& p3, const P4& p4) {
1833 MutantRunner<R, Tuple3<A1, A2, A3> >* t = 2126 MutantRunner<R, Tuple3<A1, A2, A3> >* t =
1834 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, X4, A1, A2, A3), 2127 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, X4, A1, A2, A3),
1835 Tuple4<P1, P2, P3, P4>, Tuple3<A1, A2, A3> > 2128 Tuple4<P1, P2, P3, P4>, Tuple3<A1, A2, A3> >
1836 (obj, method, MakeTuple(p1, p2, p3, p4)); 2129 (obj, method, MakeTuple(p1, p2, p3, p4));
1837 return MutantFunctor<R, Tuple3<A1, A2, A3> >(t); 2130 return MutantFunctor<R, Tuple3<A1, A2, A3> >(t);
1838 } 2131 }
2132 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
2133 template <typename R, typename T, typename U, typename P1, typename P2,
2134 typename P3, typename P4, typename A1, typename A2, typename A3,
2135 typename X1, typename X2, typename X3, typename X4>
2136 inline MutantFunctor<R, Tuple3<A1, A2, A3> >
2137 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, X4, A1, A2, A3),
2138 const P1& p1, const P2& p2, const P3& p3, const P4& p4) {
2139 MutantRunner<R, Tuple3<A1, A2, A3> >* t =
2140 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, X4, A1, A2, A3),
2141 Tuple4<P1, P2, P3, P4>, Tuple3<A1, A2, A3> >
2142 (obj, method, MakeTuple(p1, p2, p3, p4));
2143 return MutantFunctor<R, Tuple3<A1, A2, A3> >(t);
2144 }
2145 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1839 #endif // OS_WIN 2146 #endif // OS_WIN
1840 2147
1841 // 4 - 4 2148 // 4 - 4
1842 template <typename R, typename T, typename U, typename P1, typename P2, 2149 template <typename R, typename T, typename U, typename P1, typename P2,
1843 typename P3, typename P4, typename A1, typename A2, typename A3, 2150 typename P3, typename P4, typename A1, typename A2, typename A3,
1844 typename A4, typename X1, typename X2, typename X3, typename X4> 2151 typename A4, typename X1, typename X2, typename X3, typename X4>
1845 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> > 2152 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> >
1846 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, X4, A1, A2, A3, A4), 2153 CreateFunctor(T* obj, R (U::*method)(X1, X2, X3, X4, A1, A2, A3, A4),
1847 const P1& p1, const P2& p2, const P3& p3, const P4& p4) { 2154 const P1& p1, const P2& p2, const P3& p3, const P4& p4) {
1848 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t = 2155 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t =
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1886 typename A4, typename X1, typename X2, typename X3, typename X4> 2193 typename A4, typename X1, typename X2, typename X3, typename X4>
1887 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> > 2194 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> >
1888 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, X4, A1, A2, A3, A4), 2195 CreateFunctor(T* obj, R (__stdcall U::*method)(X1, X2, X3, X4, A1, A2, A3, A4),
1889 const P1& p1, const P2& p2, const P3& p3, const P4& p4) { 2196 const P1& p1, const P2& p2, const P3& p3, const P4& p4) {
1890 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t = 2197 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t =
1891 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, X4, A1, A2, A3, A4), 2198 new Mutant<R, T, R (__stdcall U::*)(X1, X2, X3, X4, A1, A2, A3, A4),
1892 Tuple4<P1, P2, P3, P4>, Tuple4<A1, A2, A3, A4> > 2199 Tuple4<P1, P2, P3, P4>, Tuple4<A1, A2, A3, A4> >
1893 (obj, method, MakeTuple(p1, p2, p3, p4)); 2200 (obj, method, MakeTuple(p1, p2, p3, p4));
1894 return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t); 2201 return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t);
1895 } 2202 }
2203 #ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
2204 template <typename R, typename T, typename U, typename P1, typename P2,
2205 typename P3, typename P4, typename A1, typename A2, typename A3,
2206 typename A4, typename X1, typename X2, typename X3, typename X4>
2207 inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> >
2208 CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, X4, A1, A2, A3, A4),
2209 const P1& p1, const P2& p2, const P3& p3, const P4& p4) {
2210 MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t =
2211 new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, X4, A1, A2, A3, A4),
2212 Tuple4<P1, P2, P3, P4>, Tuple4<A1, A2, A3, A4> >
2213 (obj, method, MakeTuple(p1, p2, p3, p4));
2214 return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t);
2215 }
2216 #endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
1896 #endif // OS_WIN 2217 #endif // OS_WIN
1897 2218
1898 } // namespace testing 2219 } // namespace testing
1899 2220
1900 #endif // TESTING_GMOCK_MUTANT_H_ 2221 #endif // TESTING_GMOCK_MUTANT_H_
OLDNEW
« no previous file with comments | « testing/generate_gmock_mutant.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698