From cfe466a0a75333a1c12baa99c172b9036fc5ccf1 Mon Sep 17 00:00:00 2001 From: Mark Mentovai Date: Wed, 11 Nov 2015 18:26:35 -0500 Subject: Use a templated helper to wrap the cast MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The helper needs to be templated because its argument type can’t be known. FloatingPointTest is instantiated with RawType = float and RawType = double, so Bits will be an unsigned 32-bit or 64-bit type. size_t will be either 32 or 64 bits depending on the system’s definition, typically based on pointer size. --- googlemock/test/gmock-matchers_test.cc | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/googlemock/test/gmock-matchers_test.cc b/googlemock/test/gmock-matchers_test.cc index 11b6de2d..323ab25c 100644 --- a/googlemock/test/gmock-matchers_test.cc +++ b/googlemock/test/gmock-matchers_test.cc @@ -2708,21 +2708,16 @@ class FloatingPointTest : public testing::Test { zero_bits_(Floating(0).bits()), one_bits_(Floating(1).bits()), infinity_bits_(Floating(Floating::Infinity()).bits()), - close_to_positive_zero_(Floating::ReinterpretBits( - static_cast(zero_bits_ + max_ulps_/2))), - close_to_negative_zero_(-Floating::ReinterpretBits( - static_cast(zero_bits_ + max_ulps_ - max_ulps_/2))), - further_from_negative_zero_(-Floating::ReinterpretBits( - static_cast(zero_bits_ + max_ulps_ + 1 - max_ulps_/2))), - close_to_one_(Floating::ReinterpretBits( - static_cast(one_bits_ + max_ulps_))), - further_from_one_(Floating::ReinterpretBits( - static_cast(one_bits_ + max_ulps_ + 1))), + close_to_positive_zero_(ReinterpretBits(zero_bits_ + max_ulps_/2)), + close_to_negative_zero_(ReinterpretBits( + zero_bits_ + max_ulps_ - max_ulps_/2)), + further_from_negative_zero_(-ReinterpretBits( + zero_bits_ + max_ulps_ + 1 - max_ulps_/2)), + close_to_one_(ReinterpretBits(one_bits_ + max_ulps_)), + further_from_one_(ReinterpretBits(one_bits_ + max_ulps_ + 1)), infinity_(Floating::Infinity()), - close_to_infinity_(Floating::ReinterpretBits( - static_cast(infinity_bits_ - max_ulps_))), - further_from_infinity_(Floating::ReinterpretBits( - static_cast(infinity_bits_ - max_ulps_ - 1))), + close_to_infinity_(ReinterpretBits(infinity_bits_ - max_ulps_)), + further_from_infinity_(ReinterpretBits(infinity_bits_ - max_ulps_ - 1)), max_(Floating::Max()), nan1_(Floating::ReinterpretBits(Floating::kExponentBitMask | 1)), nan2_(Floating::ReinterpretBits(Floating::kExponentBitMask | 200)) { @@ -2806,6 +2801,12 @@ class FloatingPointTest : public testing::Test { // Some NaNs. const RawType nan1_; const RawType nan2_; + + private: + template + static RawType ReinterpretBits(T value) { + return Floating::ReinterpretBits(static_cast(value)); + } }; // Tests floating-point matchers with fixed epsilons. -- cgit v1.2.3