mirror of
https://github.com/google/googletest.git
synced 2025-01-21 15:11:57 +08:00
avoids clash with the max() macro on Windows
This commit is contained in:
parent
c306ef2e14
commit
2d3543f81d
@ -51,6 +51,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
#include <float.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
@ -294,6 +295,9 @@ class FloatingPoint {
|
|||||||
return ReinterpretBits(kExponentBitMask);
|
return ReinterpretBits(kExponentBitMask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Returns the maximum representable finite floating-point number.
|
||||||
|
static RawType Max();
|
||||||
|
|
||||||
// Non-static methods
|
// Non-static methods
|
||||||
|
|
||||||
// Returns the bits that represents this number.
|
// Returns the bits that represents this number.
|
||||||
@ -374,6 +378,13 @@ class FloatingPoint {
|
|||||||
FloatingPointUnion u_;
|
FloatingPointUnion u_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// We cannot use std::numeric_limits<T>::max() as it clashes with the max()
|
||||||
|
// macro defined by <windows.h>.
|
||||||
|
template <>
|
||||||
|
inline float FloatingPoint<float>::Max() { return FLT_MAX; }
|
||||||
|
template <>
|
||||||
|
inline double FloatingPoint<double>::Max() { return DBL_MAX; }
|
||||||
|
|
||||||
// Typedefs the instances of the FloatingPoint template class that we
|
// Typedefs the instances of the FloatingPoint template class that we
|
||||||
// care to use.
|
// care to use.
|
||||||
typedef FloatingPoint<float> Float;
|
typedef FloatingPoint<float> Float;
|
||||||
|
@ -45,7 +45,6 @@ using testing::internal::AlwaysTrue;
|
|||||||
# else
|
# else
|
||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
# include <sys/wait.h> // For waitpid.
|
# include <sys/wait.h> // For waitpid.
|
||||||
# include <limits> // For std::numeric_limits.
|
|
||||||
# endif // GTEST_OS_WINDOWS
|
# endif // GTEST_OS_WINDOWS
|
||||||
|
|
||||||
# include <limits.h>
|
# include <limits.h>
|
||||||
@ -1123,17 +1122,16 @@ TEST(AutoHandleTest, AutoHandleWorks) {
|
|||||||
# if GTEST_OS_WINDOWS
|
# if GTEST_OS_WINDOWS
|
||||||
typedef unsigned __int64 BiggestParsable;
|
typedef unsigned __int64 BiggestParsable;
|
||||||
typedef signed __int64 BiggestSignedParsable;
|
typedef signed __int64 BiggestSignedParsable;
|
||||||
const BiggestParsable kBiggestParsableMax = ULLONG_MAX;
|
|
||||||
const BiggestSignedParsable kBiggestSignedParsableMax = LLONG_MAX;
|
|
||||||
# else
|
# else
|
||||||
typedef unsigned long long BiggestParsable;
|
typedef unsigned long long BiggestParsable;
|
||||||
typedef signed long long BiggestSignedParsable;
|
typedef signed long long BiggestSignedParsable;
|
||||||
const BiggestParsable kBiggestParsableMax =
|
|
||||||
::std::numeric_limits<BiggestParsable>::max();
|
|
||||||
const BiggestSignedParsable kBiggestSignedParsableMax =
|
|
||||||
::std::numeric_limits<BiggestSignedParsable>::max();
|
|
||||||
# endif // GTEST_OS_WINDOWS
|
# endif // GTEST_OS_WINDOWS
|
||||||
|
|
||||||
|
// We cannot use std::numeric_limits<T>::max() as it clashes with the
|
||||||
|
// max() macro defined by <windows.h>.
|
||||||
|
const BiggestParsable kBiggestParsableMax = ULLONG_MAX;
|
||||||
|
const BiggestSignedParsable kBiggestSignedParsableMax = LLONG_MAX;
|
||||||
|
|
||||||
TEST(ParseNaturalNumberTest, RejectsInvalidFormat) {
|
TEST(ParseNaturalNumberTest, RejectsInvalidFormat) {
|
||||||
BiggestParsable result = 0;
|
BiggestParsable result = 0;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user