summaryrefslogtreecommitdiffstats
path: root/googlemock/include/gmock/gmock-generated-actions.h.pump
diff options
context:
space:
mode:
authorAbseil Team <absl-team@google.com>2019-12-18 22:36:29 (GMT)
committerAndy Soffer <asoffer@google.com>2020-01-02 21:48:42 (GMT)
commitd0a521255eb59ec6ff6e30fdf53c4f05f3fd3270 (patch)
tree5f38f56049388d69fbbb17a979a2864d10759409 /googlemock/include/gmock/gmock-generated-actions.h.pump
parent6f1a8ffde934f4dda39cc12cd7260874c4f3e390 (diff)
downloadgoogletest-d0a521255eb59ec6ff6e30fdf53c4f05f3fd3270.zip
googletest-d0a521255eb59ec6ff6e30fdf53c4f05f3fd3270.tar.gz
googletest-d0a521255eb59ec6ff6e30fdf53c4f05f3fd3270.tar.bz2
Googletest export
Use C++11 variadic templates for InvokeArgumentAdl in gmock-generated-actions.h. Make InvokeArgumentAdl use variadic templates to generate its overloads instead of using pump.py syntax. PiperOrigin-RevId: 286267615
Diffstat (limited to 'googlemock/include/gmock/gmock-generated-actions.h.pump')
-rw-r--r--googlemock/include/gmock/gmock-generated-actions.h.pump26
1 files changed, 26 insertions, 0 deletions
diff --git a/googlemock/include/gmock/gmock-generated-actions.h.pump b/googlemock/include/gmock/gmock-generated-actions.h.pump
index ab76d2c..1121fbd 100644
--- a/googlemock/include/gmock/gmock-generated-actions.h.pump
+++ b/googlemock/include/gmock/gmock-generated-actions.h.pump
@@ -506,6 +506,32 @@ namespace testing {
// InvokeArgument action from temporary values and have it performed
// later.
+namespace internal {
+namespace invoke_argument {
+
+// Appears in InvokeArgumentAdl's argument list to help avoid
+// accidental calls to user functions of the same name.
+struct AdlTag {};
+
+// InvokeArgumentAdl - a helper for InvokeArgument.
+// The basic overloads are provided here for generic functors.
+// Overloads for other custom-callables are provided in the
+// internal/custom/gmock-generated-actions.h header.
+
+$range i 0..n
+$for i
+[[
+$range j 1..i
+
+template <typename R, typename F[[$for j [[, typename A$j]]]]>
+R InvokeArgumentAdl(AdlTag, F f[[$for j [[, A$j a$j]]]]) {
+ return f([[$for j, [[a$j]]]]);
+}
+]]
+
+} // namespace invoke_argument
+} // namespace internal
+
$range i 0..n
$for i [[
$range j 0..i-1