aboutsummaryrefslogtreecommitdiff
path: root/EASTL/source/numeric_limits.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'EASTL/source/numeric_limits.cpp')
-rw-r--r--EASTL/source/numeric_limits.cpp32
1 files changed, 29 insertions, 3 deletions
diff --git a/EASTL/source/numeric_limits.cpp b/EASTL/source/numeric_limits.cpp
index 7b7bf2f..90b1d75 100644
--- a/EASTL/source/numeric_limits.cpp
+++ b/EASTL/source/numeric_limits.cpp
@@ -39,7 +39,7 @@
#endif
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) && !defined(EA_COMPILER_CLANG_CL)
// VC++ has a long-standing bug: it fails to allow the definition of static const member variables
// outside the declaration within the class. The C++ Standard actually requires that they be defined
// and some other compilers fail to link if they aren't. So we simply don't define the members for VC++.
@@ -197,6 +197,32 @@
EA_CONSTEXPR_OR_CONST bool numeric_limits<wchar_t>::has_denorm_loss;
EA_CONSTEXPR_OR_CONST bool numeric_limits<wchar_t>::is_iec559;
+ // char8_t
+ #if defined(EA_CHAR8_UNIQUE) && EA_CHAR8_UNIQUE // If char8_t is a true unique type (as called for by the C++20 Standard)
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_specialized;
+ EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::digits;
+ EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::digits10;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_signed;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_integer;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_exact;
+ EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::radix;
+ EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::min_exponent;
+ EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::min_exponent10;
+ EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::max_exponent;
+ EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::max_exponent10;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_bounded;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_modulo;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::traps;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::tinyness_before;
+ EA_CONSTEXPR_OR_CONST float_round_style numeric_limits<char8_t>::round_style;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::has_infinity;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::has_quiet_NaN;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::has_signaling_NaN;
+ EA_CONSTEXPR_OR_CONST float_denorm_style numeric_limits<char8_t>::has_denorm;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::has_denorm_loss;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_iec559;
+ #endif
+
// char16_t
#if EA_CHAR16_NATIVE // If char16_t is a true unique type (as called for by the C++11 Standard)...
EA_CONSTEXPR_OR_CONST bool numeric_limits<char16_t>::is_specialized;
@@ -442,7 +468,7 @@
EA_CONSTEXPR_OR_CONST bool numeric_limits<long long>::is_iec559;
// __uint128_t
- #if (EA_COMPILER_INTMAX_SIZE >= 16) && (defined(EA_COMPILER_GNUC) || defined(EA_COMPILER_CLANG)) // If __int128_t/__uint128_t is supported...
+ #if (EA_COMPILER_INTMAX_SIZE >= 16) && (defined(EA_COMPILER_GNUC) || defined(__clang__)) // If __int128_t/__uint128_t is supported...
EA_CONSTEXPR_OR_CONST bool numeric_limits<__uint128_t>::is_specialized;
EA_CONSTEXPR_OR_CONST int numeric_limits<__uint128_t>::digits;
EA_CONSTEXPR_OR_CONST int numeric_limits<__uint128_t>::digits10;
@@ -468,7 +494,7 @@
#endif
// __int128_t
- #if (EA_COMPILER_INTMAX_SIZE >= 16) && (defined(EA_COMPILER_GNUC) || defined(EA_COMPILER_CLANG)) // If __int128_t/__uint128_t is supported...
+ #if (EA_COMPILER_INTMAX_SIZE >= 16) && (defined(EA_COMPILER_GNUC) || defined(__clang__)) // If __int128_t/__uint128_t is supported...
EA_CONSTEXPR_OR_CONST bool numeric_limits<__int128_t>::is_specialized;
EA_CONSTEXPR_OR_CONST int numeric_limits<__int128_t>::digits;
EA_CONSTEXPR_OR_CONST int numeric_limits<__int128_t>::digits10;