diff options
author | Abseil Team <absl-team@google.com> | 2021-12-03 18:13:10 (GMT) |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2021-12-03 18:14:13 (GMT) |
commit | d61d4d8e64c08a662055e82904bbf90e108a704f (patch) | |
tree | f63a7ab70429760a1b12221a5200dae8721311fe /googlemock/include/gmock | |
parent | 1b2606425c4040cacadaa22689423ec0a29f316d (diff) | |
download | googletest-d61d4d8e64c08a662055e82904bbf90e108a704f.zip googletest-d61d4d8e64c08a662055e82904bbf90e108a704f.tar.gz googletest-d61d4d8e64c08a662055e82904bbf90e108a704f.tar.bz2 |
Support std::reference_wapper as a smart pointer type in gmock
PiperOrigin-RevId: 413963503
Change-Id: I33440780bf087698f4e4325399227405885430b3
Diffstat (limited to 'googlemock/include/gmock')
-rw-r--r-- | googlemock/include/gmock/internal/gmock-internal-utils.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/googlemock/include/gmock/internal/gmock-internal-utils.h b/googlemock/include/gmock/internal/gmock-internal-utils.h index 8ecfbf5..2975fad 100644 --- a/googlemock/include/gmock/internal/gmock-internal-utils.h +++ b/googlemock/include/gmock/internal/gmock-internal-utils.h @@ -76,6 +76,13 @@ template <typename Pointer> inline const typename Pointer::element_type* GetRawPointer(const Pointer& p) { return p.get(); } +// This overload version is for std::reference_wrapper, which does not work with +// the overload above, as it does not have an `element_type`. +template <typename Element> +inline const Element* GetRawPointer(const std::reference_wrapper<Element>& r) { + return &r.get(); +} + // This overloaded version is for the raw pointer case. template <typename Element> inline Element* GetRawPointer(Element* p) { return p; } |