From 4b9c1691c4b7f01fbd9d37d86c88cdad298d48e9 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Tue, 7 Jan 2020 03:51:16 -0500 Subject: Googletest export Use C++11 variadic templates for Invoke in gmock-generated-actions.h. Replace InvokeArgumentAdl with Invoke that uses C++11 variadic templates. PiperOrigin-RevId: 288449236 --- googlemock/include/gmock/gmock-actions.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'googlemock/include/gmock/gmock-actions.h') diff --git a/googlemock/include/gmock/gmock-actions.h b/googlemock/include/gmock/gmock-actions.h index 4b8dcebb..11223cf2 100644 --- a/googlemock/include/gmock/gmock-actions.h +++ b/googlemock/include/gmock/gmock-actions.h @@ -1222,6 +1222,22 @@ class ActionHelper { } }; +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. +template +auto InvokeArgumentAdl(AdlTag, F f, Args... args) -> decltype(f(args...)) { + return f(args...); +} + +} // namespace invoke_argument } // namespace internal } // namespace testing -- cgit v1.2.3