aboutsummaryrefslogtreecommitdiffstats
path: root/include/gmock/gmock-generated-function-mockers.h
diff options
context:
space:
mode:
authorzhanyong.wan <zhanyong.wan@8415998a-534a-0410-bf83-d39667b30386>2009-11-12 19:18:08 +0000
committerzhanyong.wan <zhanyong.wan@8415998a-534a-0410-bf83-d39667b30386>2009-11-12 19:18:08 +0000
commit21a5846afdd19ae9907cdc7c45264c35175b1651 (patch)
treec41a3950d64ccbac267cb9a3d7c7de4bb2749452 /include/gmock/gmock-generated-function-mockers.h
parent4910d29e1e1eed4f6946871168a234be5b490163 (diff)
downloadgoogletest-21a5846afdd19ae9907cdc7c45264c35175b1651.tar.gz
googletest-21a5846afdd19ae9907cdc7c45264c35175b1651.tar.bz2
googletest-21a5846afdd19ae9907cdc7c45264c35175b1651.zip
Makes gmock-generated-function-mockers.h conform to the C++ standard.
Diffstat (limited to 'include/gmock/gmock-generated-function-mockers.h')
-rw-r--r--include/gmock/gmock-generated-function-mockers.h71
1 files changed, 56 insertions, 15 deletions
diff --git a/include/gmock/gmock-generated-function-mockers.h b/include/gmock/gmock-generated-function-mockers.h
index 3002b6c5..9f3a956c 100644
--- a/include/gmock/gmock-generated-function-mockers.h
+++ b/include/gmock/gmock-generated-function-mockers.h
@@ -42,10 +42,6 @@
#include <gmock/internal/gmock-internal-utils.h>
namespace testing {
-
-template <typename F>
-class MockSpec;
-
namespace internal {
template <typename F>
@@ -71,7 +67,11 @@ class FunctionMocker<R()> : public
}
R Invoke() {
- return InvokeWith(ArgumentTuple());
+ // Even though gcc and MSVC don't enforce it, 'this->' is required
+ // by the C++ standard [14.6.4] here, as the base class type is
+ // dependent on the template argument (and thus shouldn't be
+ // looked into when resolving InvokeWith).
+ return this->InvokeWith(ArgumentTuple());
}
};
@@ -88,7 +88,11 @@ class FunctionMocker<R(A1)> : public
}
R Invoke(A1 a1) {
- return InvokeWith(ArgumentTuple(a1));
+ // Even though gcc and MSVC don't enforce it, 'this->' is required
+ // by the C++ standard [14.6.4] here, as the base class type is
+ // dependent on the template argument (and thus shouldn't be
+ // looked into when resolving InvokeWith).
+ return this->InvokeWith(ArgumentTuple(a1));
}
};
@@ -105,7 +109,11 @@ class FunctionMocker<R(A1, A2)> : public
}
R Invoke(A1 a1, A2 a2) {
- return InvokeWith(ArgumentTuple(a1, a2));
+ // Even though gcc and MSVC don't enforce it, 'this->' is required
+ // by the C++ standard [14.6.4] here, as the base class type is
+ // dependent on the template argument (and thus shouldn't be
+ // looked into when resolving InvokeWith).
+ return this->InvokeWith(ArgumentTuple(a1, a2));
}
};
@@ -123,7 +131,11 @@ class FunctionMocker<R(A1, A2, A3)> : public
}
R Invoke(A1 a1, A2 a2, A3 a3) {
- return InvokeWith(ArgumentTuple(a1, a2, a3));
+ // Even though gcc and MSVC don't enforce it, 'this->' is required
+ // by the C++ standard [14.6.4] here, as the base class type is
+ // dependent on the template argument (and thus shouldn't be
+ // looked into when resolving InvokeWith).
+ return this->InvokeWith(ArgumentTuple(a1, a2, a3));
}
};
@@ -141,7 +153,11 @@ class FunctionMocker<R(A1, A2, A3, A4)> : public
}
R Invoke(A1 a1, A2 a2, A3 a3, A4 a4) {
- return InvokeWith(ArgumentTuple(a1, a2, a3, a4));
+ // Even though gcc and MSVC don't enforce it, 'this->' is required
+ // by the C++ standard [14.6.4] here, as the base class type is
+ // dependent on the template argument (and thus shouldn't be
+ // looked into when resolving InvokeWith).
+ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4));
}
};
@@ -161,7 +177,11 @@ class FunctionMocker<R(A1, A2, A3, A4, A5)> : public
}
R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) {
- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5));
+ // Even though gcc and MSVC don't enforce it, 'this->' is required
+ // by the C++ standard [14.6.4] here, as the base class type is
+ // dependent on the template argument (and thus shouldn't be
+ // looked into when resolving InvokeWith).
+ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5));
}
};
@@ -182,7 +202,11 @@ class FunctionMocker<R(A1, A2, A3, A4, A5, A6)> : public
}
R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) {
- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6));
+ // Even though gcc and MSVC don't enforce it, 'this->' is required
+ // by the C++ standard [14.6.4] here, as the base class type is
+ // dependent on the template argument (and thus shouldn't be
+ // looked into when resolving InvokeWith).
+ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6));
}
};
@@ -203,7 +227,11 @@ class FunctionMocker<R(A1, A2, A3, A4, A5, A6, A7)> : public
}
R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) {
- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7));
+ // Even though gcc and MSVC don't enforce it, 'this->' is required
+ // by the C++ standard [14.6.4] here, as the base class type is
+ // dependent on the template argument (and thus shouldn't be
+ // looked into when resolving InvokeWith).
+ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7));
}
};
@@ -224,7 +252,11 @@ class FunctionMocker<R(A1, A2, A3, A4, A5, A6, A7, A8)> : public
}
R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) {
- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8));
+ // Even though gcc and MSVC don't enforce it, 'this->' is required
+ // by the C++ standard [14.6.4] here, as the base class type is
+ // dependent on the template argument (and thus shouldn't be
+ // looked into when resolving InvokeWith).
+ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8));
}
};
@@ -246,7 +278,11 @@ class FunctionMocker<R(A1, A2, A3, A4, A5, A6, A7, A8, A9)> : public
}
R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) {
- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8, a9));
+ // Even though gcc and MSVC don't enforce it, 'this->' is required
+ // by the C++ standard [14.6.4] here, as the base class type is
+ // dependent on the template argument (and thus shouldn't be
+ // looked into when resolving InvokeWith).
+ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8, a9));
}
};
@@ -270,7 +306,12 @@ class FunctionMocker<R(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)> : public
R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9,
A10 a10) {
- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10));
+ // Even though gcc and MSVC don't enforce it, 'this->' is required
+ // by the C++ standard [14.6.4] here, as the base class type is
+ // dependent on the template argument (and thus shouldn't be
+ // looked into when resolving InvokeWith).
+ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8, a9,
+ a10));
}
};