[llvm] c94eb0f - Fix compilation of Google Test in C++20 mode
Benjamin Kramer via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 6 09:07:51 PST 2021
Author: Evgeny Mandrikov
Date: 2021-12-06T18:07:25+01:00
New Revision: c94eb0f9ef5597bd1b3b0efda4df53f606a1fe13
URL: https://github.com/llvm/llvm-project/commit/c94eb0f9ef5597bd1b3b0efda4df53f606a1fe13
DIFF: https://github.com/llvm/llvm-project/commit/c94eb0f9ef5597bd1b3b0efda4df53f606a1fe13.diff
LOG: Fix compilation of Google Test in C++20 mode
Without this patch when using CMAKE_CXX_STANDARD=20
and MSVC 19.30.30705.0 compilation of unit tests
fails with
llvm\utils\unittest\googlemock\include\gmock/gmock-actions.h(828): error C2039: 'result_of': is not a member of 'std'
Patch is taken from Google Test:
https://github.com/google/googletest/commit/61f010d703b32de9bfb20ab90ece38ab2f25977f
Do not use std::result_of as it was removed in C++20.
Differential Revision: https://reviews.llvm.org/D115163
Added:
Modified:
llvm/utils/unittest/googlemock/include/gmock/gmock-actions.h
Removed:
################################################################################
diff --git a/llvm/utils/unittest/googlemock/include/gmock/gmock-actions.h b/llvm/utils/unittest/googlemock/include/gmock/gmock-actions.h
index 0a997a2984479..52624cd63399d 100644
--- a/llvm/utils/unittest/googlemock/include/gmock/gmock-actions.h
+++ b/llvm/utils/unittest/googlemock/include/gmock/gmock-actions.h
@@ -825,7 +825,8 @@ struct InvokeMethodWithoutArgsAction {
Class* const obj_ptr;
const MethodPtr method_ptr;
- using ReturnType = typename std::result_of<MethodPtr(Class*)>::type;
+ using ReturnType =
+ decltype((std::declval<Class*>()->*std::declval<MethodPtr>())());
template <typename... Args>
ReturnType operator()(const Args&...) const {
More information about the llvm-commits
mailing list