diff options
author | Derek Mauro <dmauro@google.com> | 2023-08-02 15:18:56 (GMT) |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2023-08-02 15:19:45 (GMT) |
commit | 96683ee6680e433a53e7deda976640ae3268012d (patch) | |
tree | e57d747b23551a4bfcda86782446b1f5db4d35f2 | |
parent | 58e37f7e99152a28a092028294a6ca587e6657c5 (diff) | |
download | googletest-96683ee6680e433a53e7deda976640ae3268012d.zip googletest-96683ee6680e433a53e7deda976640ae3268012d.tar.gz googletest-96683ee6680e433a53e7deda976640ae3268012d.tar.bz2 |
Remove the GTEST_HAS_DOWNCAST_ customization point.
PiperOrigin-RevId: 553150809
Change-Id: I10d19a45a85c5f63a5e65dc322413307116e1c25
-rw-r--r-- | googletest/include/gtest/internal/gtest-port.h | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/googletest/include/gtest/internal/gtest-port.h b/googletest/include/gtest/internal/gtest-port.h index 656df26..b887e24 100644 --- a/googletest/include/gtest/internal/gtest-port.h +++ b/googletest/include/gtest/internal/gtest-port.h @@ -220,7 +220,6 @@ // GTEST_HAS_ALT_PATH_SEP_ - Always defined to 0 or 1. // GTEST_WIDE_STRING_USES_UTF16_ - Always defined to 0 or 1. // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ - Always defined to 0 or 1. -// GTEST_HAS_DOWNCAST_ - Always defined to 0 or 1. // GTEST_HAS_NOTIFICATION_- Always defined to 0 or 1. // // Synchronization: @@ -313,10 +312,6 @@ #include "gtest/internal/custom/gtest-port.h" #include "gtest/internal/gtest-port-arch.h" -#ifndef GTEST_HAS_DOWNCAST_ -#define GTEST_HAS_DOWNCAST_ 0 -#endif - #ifndef GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ #define GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ 0 #endif @@ -1153,17 +1148,12 @@ inline To ImplicitCast_(To x) { // check to enforce this. template <class Derived, class Base> Derived* CheckedDowncastToActualType(Base* base) { + static_assert(std::is_base_of<Base, Derived>::value, + "target type not derived from source type"); #if GTEST_HAS_RTTI - GTEST_CHECK_(typeid(*base) == typeid(Derived)); -#endif - -#if GTEST_HAS_DOWNCAST_ - return ::down_cast<Derived*>(base); -#elif GTEST_HAS_RTTI - return dynamic_cast<Derived*>(base); // NOLINT -#else - return static_cast<Derived*>(base); // Poor man's downcast. + GTEST_CHECK_(base == nullptr || dynamic_cast<Derived*>(base) != nullptr); #endif + return static_cast<Derived*>(base); } #if GTEST_HAS_STREAM_REDIRECTION |