Index: testing/gmock_mutant.h |
=================================================================== |
--- testing/gmock_mutant.h (revision 31943) |
+++ testing/gmock_mutant.h (working copy) |
@@ -650,6 +650,17 @@ |
(obj, method, MakeTuple()); |
return MutantFunctor<R, Tuple0>(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U> |
+inline MutantFunctor<R, Tuple0> |
+CreateFunctor(T** obj, R (__stdcall U::*method)()) { |
+ MutantRunner<R, Tuple0>* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(), |
+ Tuple0, Tuple0> |
+ (obj, method, MakeTuple()); |
+ return MutantFunctor<R, Tuple0>(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 0 - 1 |
@@ -695,6 +706,17 @@ |
(obj, method, MakeTuple()); |
return MutantFunctor<R, Tuple1<A1> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename A1> |
+inline MutantFunctor<R, Tuple1<A1> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(A1)) { |
+ MutantRunner<R, Tuple1<A1> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(A1), |
+ Tuple0, Tuple1<A1> > |
+ (obj, method, MakeTuple()); |
+ return MutantFunctor<R, Tuple1<A1> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 0 - 2 |
@@ -740,6 +762,17 @@ |
(obj, method, MakeTuple()); |
return MutantFunctor<R, Tuple2<A1, A2> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename A1, typename A2> |
+inline MutantFunctor<R, Tuple2<A1, A2> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(A1, A2)) { |
+ MutantRunner<R, Tuple2<A1, A2> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(A1, A2), |
+ Tuple0, Tuple2<A1, A2> > |
+ (obj, method, MakeTuple()); |
+ return MutantFunctor<R, Tuple2<A1, A2> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 0 - 3 |
@@ -788,6 +821,18 @@ |
(obj, method, MakeTuple()); |
return MutantFunctor<R, Tuple3<A1, A2, A3> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename A1, typename A2, |
+ typename A3> |
+inline MutantFunctor<R, Tuple3<A1, A2, A3> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(A1, A2, A3)) { |
+ MutantRunner<R, Tuple3<A1, A2, A3> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(A1, A2, A3), |
+ Tuple0, Tuple3<A1, A2, A3> > |
+ (obj, method, MakeTuple()); |
+ return MutantFunctor<R, Tuple3<A1, A2, A3> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 0 - 4 |
@@ -836,6 +881,18 @@ |
(obj, method, MakeTuple()); |
return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename A1, typename A2, |
+ typename A3, typename A4> |
+inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(A1, A2, A3, A4)) { |
+ MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(A1, A2, A3, A4), |
+ Tuple0, Tuple4<A1, A2, A3, A4> > |
+ (obj, method, MakeTuple()); |
+ return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 1 - 0 |
@@ -881,6 +938,17 @@ |
(obj, method, MakeTuple(p1)); |
return MutantFunctor<R, Tuple0>(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename X1> |
+inline MutantFunctor<R, Tuple0> |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1), const P1& p1) { |
+ MutantRunner<R, Tuple0>* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1), |
+ Tuple1<P1>, Tuple0> |
+ (obj, method, MakeTuple(p1)); |
+ return MutantFunctor<R, Tuple0>(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 1 - 1 |
@@ -929,6 +997,18 @@ |
(obj, method, MakeTuple(p1)); |
return MutantFunctor<R, Tuple1<A1> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename A1, |
+ typename X1> |
+inline MutantFunctor<R, Tuple1<A1> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, A1), const P1& p1) { |
+ MutantRunner<R, Tuple1<A1> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, A1), |
+ Tuple1<P1>, Tuple1<A1> > |
+ (obj, method, MakeTuple(p1)); |
+ return MutantFunctor<R, Tuple1<A1> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 1 - 2 |
@@ -977,6 +1057,18 @@ |
(obj, method, MakeTuple(p1)); |
return MutantFunctor<R, Tuple2<A1, A2> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename A1, |
+ typename A2, typename X1> |
+inline MutantFunctor<R, Tuple2<A1, A2> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, A1, A2), const P1& p1) { |
+ MutantRunner<R, Tuple2<A1, A2> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, A1, A2), |
+ Tuple1<P1>, Tuple2<A1, A2> > |
+ (obj, method, MakeTuple(p1)); |
+ return MutantFunctor<R, Tuple2<A1, A2> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 1 - 3 |
@@ -1026,6 +1118,18 @@ |
(obj, method, MakeTuple(p1)); |
return MutantFunctor<R, Tuple3<A1, A2, A3> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename A1, |
+ typename A2, typename A3, typename X1> |
+inline MutantFunctor<R, Tuple3<A1, A2, A3> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, A1, A2, A3), const P1& p1) { |
+ MutantRunner<R, Tuple3<A1, A2, A3> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, A1, A2, A3), |
+ Tuple1<P1>, Tuple3<A1, A2, A3> > |
+ (obj, method, MakeTuple(p1)); |
+ return MutantFunctor<R, Tuple3<A1, A2, A3> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 1 - 4 |
@@ -1076,6 +1180,19 @@ |
(obj, method, MakeTuple(p1)); |
return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename A1, |
+ typename A2, typename A3, typename A4, typename X1> |
+inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, A1, A2, A3, A4), |
+ const P1& p1) { |
+ MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, A1, A2, A3, A4), |
+ Tuple1<P1>, Tuple4<A1, A2, A3, A4> > |
+ (obj, method, MakeTuple(p1)); |
+ return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 2 - 0 |
@@ -1125,6 +1242,19 @@ |
(obj, method, MakeTuple(p1, p2)); |
return MutantFunctor<R, Tuple0>(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename P2, |
+ typename X1, typename X2> |
+inline MutantFunctor<R, Tuple0> |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2), const P1& p1, |
+ const P2& p2) { |
+ MutantRunner<R, Tuple0>* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2), |
+ Tuple2<P1, P2>, Tuple0> |
+ (obj, method, MakeTuple(p1, p2)); |
+ return MutantFunctor<R, Tuple0>(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 2 - 1 |
@@ -1175,6 +1305,19 @@ |
(obj, method, MakeTuple(p1, p2)); |
return MutantFunctor<R, Tuple1<A1> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename P2, |
+ typename A1, typename X1, typename X2> |
+inline MutantFunctor<R, Tuple1<A1> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, A1), const P1& p1, |
+ const P2& p2) { |
+ MutantRunner<R, Tuple1<A1> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, A1), |
+ Tuple2<P1, P2>, Tuple1<A1> > |
+ (obj, method, MakeTuple(p1, p2)); |
+ return MutantFunctor<R, Tuple1<A1> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 2 - 2 |
@@ -1227,6 +1370,19 @@ |
(obj, method, MakeTuple(p1, p2)); |
return MutantFunctor<R, Tuple2<A1, A2> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename P2, |
+ typename A1, typename A2, typename X1, typename X2> |
+inline MutantFunctor<R, Tuple2<A1, A2> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, A1, A2), const P1& p1, |
+ const P2& p2) { |
+ MutantRunner<R, Tuple2<A1, A2> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, A1, A2), |
+ Tuple2<P1, P2>, Tuple2<A1, A2> > |
+ (obj, method, MakeTuple(p1, p2)); |
+ return MutantFunctor<R, Tuple2<A1, A2> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 2 - 3 |
@@ -1279,6 +1435,19 @@ |
(obj, method, MakeTuple(p1, p2)); |
return MutantFunctor<R, Tuple3<A1, A2, A3> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename P2, |
+ typename A1, typename A2, typename A3, typename X1, typename X2> |
+inline MutantFunctor<R, Tuple3<A1, A2, A3> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, A1, A2, A3), |
+ const P1& p1, const P2& p2) { |
+ MutantRunner<R, Tuple3<A1, A2, A3> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, A1, A2, A3), |
+ Tuple2<P1, P2>, Tuple3<A1, A2, A3> > |
+ (obj, method, MakeTuple(p1, p2)); |
+ return MutantFunctor<R, Tuple3<A1, A2, A3> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 2 - 4 |
@@ -1335,6 +1504,20 @@ |
(obj, method, MakeTuple(p1, p2)); |
return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename P2, |
+ typename A1, typename A2, typename A3, typename A4, typename X1, |
+ typename X2> |
+inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, A1, A2, A3, A4), |
+ const P1& p1, const P2& p2) { |
+ MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, A1, A2, A3, A4), |
+ Tuple2<P1, P2>, Tuple4<A1, A2, A3, A4> > |
+ (obj, method, MakeTuple(p1, p2)); |
+ return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 3 - 0 |
@@ -1388,6 +1571,19 @@ |
(obj, method, MakeTuple(p1, p2, p3)); |
return MutantFunctor<R, Tuple0>(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename P2, |
+ typename P3, typename X1, typename X2, typename X3> |
+inline MutantFunctor<R, Tuple0> |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3), const P1& p1, |
+ const P2& p2, const P3& p3) { |
+ MutantRunner<R, Tuple0>* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3), |
+ Tuple3<P1, P2, P3>, Tuple0> |
+ (obj, method, MakeTuple(p1, p2, p3)); |
+ return MutantFunctor<R, Tuple0>(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 3 - 1 |
@@ -1441,6 +1637,19 @@ |
(obj, method, MakeTuple(p1, p2, p3)); |
return MutantFunctor<R, Tuple1<A1> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename P2, |
+ typename P3, typename A1, typename X1, typename X2, typename X3> |
+inline MutantFunctor<R, Tuple1<A1> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, A1), const P1& p1, |
+ const P2& p2, const P3& p3) { |
+ MutantRunner<R, Tuple1<A1> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, A1), |
+ Tuple3<P1, P2, P3>, Tuple1<A1> > |
+ (obj, method, MakeTuple(p1, p2, p3)); |
+ return MutantFunctor<R, Tuple1<A1> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 3 - 2 |
@@ -1497,6 +1706,20 @@ |
(obj, method, MakeTuple(p1, p2, p3)); |
return MutantFunctor<R, Tuple2<A1, A2> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename P2, |
+ typename P3, typename A1, typename A2, typename X1, typename X2, |
+ typename X3> |
+inline MutantFunctor<R, Tuple2<A1, A2> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, A1, A2), |
+ const P1& p1, const P2& p2, const P3& p3) { |
+ MutantRunner<R, Tuple2<A1, A2> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, A1, A2), |
+ Tuple3<P1, P2, P3>, Tuple2<A1, A2> > |
+ (obj, method, MakeTuple(p1, p2, p3)); |
+ return MutantFunctor<R, Tuple2<A1, A2> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 3 - 3 |
@@ -1553,6 +1776,20 @@ |
(obj, method, MakeTuple(p1, p2, p3)); |
return MutantFunctor<R, Tuple3<A1, A2, A3> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename P2, |
+ typename P3, typename A1, typename A2, typename A3, typename X1, |
+ typename X2, typename X3> |
+inline MutantFunctor<R, Tuple3<A1, A2, A3> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, A1, A2, A3), |
+ const P1& p1, const P2& p2, const P3& p3) { |
+ MutantRunner<R, Tuple3<A1, A2, A3> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, A1, A2, A3), |
+ Tuple3<P1, P2, P3>, Tuple3<A1, A2, A3> > |
+ (obj, method, MakeTuple(p1, p2, p3)); |
+ return MutantFunctor<R, Tuple3<A1, A2, A3> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 3 - 4 |
@@ -1610,6 +1847,20 @@ |
(obj, method, MakeTuple(p1, p2, p3)); |
return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename P2, |
+ typename P3, typename A1, typename A2, typename A3, typename A4, |
+ typename X1, typename X2, typename X3> |
+inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, A1, A2, A3, A4), |
+ const P1& p1, const P2& p2, const P3& p3) { |
+ MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, A1, A2, A3, A4), |
+ Tuple3<P1, P2, P3>, Tuple4<A1, A2, A3, A4> > |
+ (obj, method, MakeTuple(p1, p2, p3)); |
+ return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 4 - 0 |
@@ -1666,6 +1917,20 @@ |
(obj, method, MakeTuple(p1, p2, p3, p4)); |
return MutantFunctor<R, Tuple0>(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename P2, |
+ typename P3, typename P4, typename X1, typename X2, typename X3, |
+ typename X4> |
+inline MutantFunctor<R, Tuple0> |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, X4), const P1& p1, |
+ const P2& p2, const P3& p3, const P4& p4) { |
+ MutantRunner<R, Tuple0>* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, X4), |
+ Tuple4<P1, P2, P3, P4>, Tuple0> |
+ (obj, method, MakeTuple(p1, p2, p3, p4)); |
+ return MutantFunctor<R, Tuple0>(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 4 - 1 |
@@ -1722,6 +1987,20 @@ |
(obj, method, MakeTuple(p1, p2, p3, p4)); |
return MutantFunctor<R, Tuple1<A1> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename P2, |
+ typename P3, typename P4, typename A1, typename X1, typename X2, |
+ typename X3, typename X4> |
+inline MutantFunctor<R, Tuple1<A1> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, X4, A1), |
+ const P1& p1, const P2& p2, const P3& p3, const P4& p4) { |
+ MutantRunner<R, Tuple1<A1> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, X4, A1), |
+ Tuple4<P1, P2, P3, P4>, Tuple1<A1> > |
+ (obj, method, MakeTuple(p1, p2, p3, p4)); |
+ return MutantFunctor<R, Tuple1<A1> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 4 - 2 |
@@ -1779,6 +2058,20 @@ |
(obj, method, MakeTuple(p1, p2, p3, p4)); |
return MutantFunctor<R, Tuple2<A1, A2> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename P2, |
+ typename P3, typename P4, typename A1, typename A2, typename X1, |
+ typename X2, typename X3, typename X4> |
+inline MutantFunctor<R, Tuple2<A1, A2> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, X4, A1, A2), |
+ const P1& p1, const P2& p2, const P3& p3, const P4& p4) { |
+ MutantRunner<R, Tuple2<A1, A2> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, X4, A1, A2), |
+ Tuple4<P1, P2, P3, P4>, Tuple2<A1, A2> > |
+ (obj, method, MakeTuple(p1, p2, p3, p4)); |
+ return MutantFunctor<R, Tuple2<A1, A2> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 4 - 3 |
@@ -1836,6 +2129,20 @@ |
(obj, method, MakeTuple(p1, p2, p3, p4)); |
return MutantFunctor<R, Tuple3<A1, A2, A3> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename P2, |
+ typename P3, typename P4, typename A1, typename A2, typename A3, |
+ typename X1, typename X2, typename X3, typename X4> |
+inline MutantFunctor<R, Tuple3<A1, A2, A3> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, X4, A1, A2, A3), |
+ const P1& p1, const P2& p2, const P3& p3, const P4& p4) { |
+ MutantRunner<R, Tuple3<A1, A2, A3> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, X4, A1, A2, A3), |
+ Tuple4<P1, P2, P3, P4>, Tuple3<A1, A2, A3> > |
+ (obj, method, MakeTuple(p1, p2, p3, p4)); |
+ return MutantFunctor<R, Tuple3<A1, A2, A3> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
// 4 - 4 |
@@ -1893,6 +2200,20 @@ |
(obj, method, MakeTuple(p1, p2, p3, p4)); |
return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t); |
} |
+#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
+template <typename R, typename T, typename U, typename P1, typename P2, |
+ typename P3, typename P4, typename A1, typename A2, typename A3, |
+ typename A4, typename X1, typename X2, typename X3, typename X4> |
+inline MutantFunctor<R, Tuple4<A1, A2, A3, A4> > |
+CreateFunctor(T** obj, R (__stdcall U::*method)(X1, X2, X3, X4, A1, A2, A3, A4), |
+ const P1& p1, const P2& p2, const P3& p3, const P4& p4) { |
+ MutantRunner<R, Tuple4<A1, A2, A3, A4> >* t = |
+ new MutantLateObjectBind<R, T, R (__stdcall U::*)(X1, X2, X3, X4, A1, A2, A3, A4), |
+ Tuple4<P1, P2, P3, P4>, Tuple4<A1, A2, A3, A4> > |
+ (obj, method, MakeTuple(p1, p2, p3, p4)); |
+ return MutantFunctor<R, Tuple4<A1, A2, A3, A4> >(t); |
+} |
+#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING |
#endif // OS_WIN |
} // namespace testing |