- Fixed some minor issues due to MSVC compat

This commit is contained in:
2025-07-02 17:26:22 -04:00
parent 9ea63478e5
commit e2ea22f12d
5 changed files with 33 additions and 31 deletions

View File

@@ -22,6 +22,8 @@
#if _MSC_VER #if _MSC_VER
#pragma warning(push) #pragma warning(push)
#pragma warning(disable:4117) #pragma warning(disable:4117)
#define __PTRDIFF_TYPE__ ptrdiff_t
#endif #endif
#pragma push_macro("__cplusplus") #pragma push_macro("__cplusplus")

View File

@@ -80,7 +80,7 @@
#define FLT_EPSILON fennec::bit_cast<float>(0x34000000) #define FLT_EPSILON fennec::bit_cast<float>(0x34000000)
#define FLT_INF fennec::bit_cast<float>(0x7f800000) #define FLT_INF fennec::bit_cast<float>(0x7f800000)
#define FLT_QUIET_NAN fennec::bit_cast<float>(0x7fc00000) #define FLT_QUIET_NAN fennec::bit_cast<float>(0x7fc00000)
#define FLT_SIGNALING_NAN fennec::bit_cast<float>(0x7fc00001) #define FLT_SIGNALING_NAN fennec::bit_cast<float>(0x7fa00000)
#define FLT_DENORM_MIN fennec::bit_cast<float>(0x1) #define FLT_DENORM_MIN fennec::bit_cast<float>(0x1)
#define FLT_ROUND_ERR fennec::bit_cast<float>(0x3f000000) #define FLT_ROUND_ERR fennec::bit_cast<float>(0x3f000000)
@@ -132,7 +132,7 @@
#define DBL_EPSILON fennec::bit_cast<double>(0x3cb0000000000000ll) #define DBL_EPSILON fennec::bit_cast<double>(0x3cb0000000000000ll)
#define DBL_INF fennec::bit_cast<double>(0x7ff0000000000000ll) #define DBL_INF fennec::bit_cast<double>(0x7ff0000000000000ll)
#define DBL_QUIET_NAN fennec::bit_cast<double>(0x7ff8000000000000ll) #define DBL_QUIET_NAN fennec::bit_cast<double>(0x7ff8000000000000ll)
#define DBL_SIGNALING_NAN fennec::bit_cast<double>(0x7ff0000000000001ll) #define DBL_SIGNALING_NAN fennec::bit_cast<double>(0x7ff4000000000000ll)
#define DBL_DENORM_MIN fennec::bit_cast<double>(0x1ll) #define DBL_DENORM_MIN fennec::bit_cast<double>(0x1ll)
#define DBL_ROUND_ERR fennec::bit_cast<double>(0x3fe0000000000000ll) #define DBL_ROUND_ERR fennec::bit_cast<double>(0x3fe0000000000000ll)

View File

@@ -57,26 +57,26 @@
#define CHAR_DIG 0x2 #define CHAR_DIG 0x2
#define CHAR_DECIMAL_DIG 0x0 #define CHAR_DECIMAL_DIG 0x0
#define CHAR_RADIX 0x2 #define CHAR_RADIX 0x2
#define CHAR_TRAPS 0xfalse #define CHAR_TRAPS 0xtrue
#define CHAR_MIN 0x80 #define CHAR_MIN 0x80
#define CHAR_MAX 0x7f #define CHAR_MAX 0x7f
#define WCHAR_IS_SIGNED false #define WCHAR_IS_SIGNED true
#define WCHAR_ROUNDS 0x0 #define WCHAR_ROUNDS 0x0
#define WCHAR_RADIX_DIG 0x10 #define WCHAR_RADIX_DIG 0x1f
#define WCHAR_DIG 0x4 #define WCHAR_DIG 0x9
#define WCHAR_DECIMAL_DIG 0x0 #define WCHAR_DECIMAL_DIG 0x0
#define WCHAR_RADIX 0x2 #define WCHAR_RADIX 0x2
#define WCHAR_TRAPS 0xfalse #define WCHAR_TRAPS 0xtrue
#define WCHAR_MIN 0x0 #define WCHAR_MIN 0x80000000
#define WCHAR_MAX 0xffff #define WCHAR_MAX 0x7fffffff
#define SCHAR_ROUNDS 0x0 #define SCHAR_ROUNDS 0x0
#define SCHAR_RADIX_DIG 0x7 #define SCHAR_RADIX_DIG 0x7
#define SCHAR_DIG 0x2 #define SCHAR_DIG 0x2
#define SCHAR_DECIMAL_DIG 0x0 #define SCHAR_DECIMAL_DIG 0x0
#define SCHAR_RADIX 0x2 #define SCHAR_RADIX 0x2
#define SCHAR_TRAPS 0xfalse #define SCHAR_TRAPS 0xtrue
#define SCHAR_MIN 0x80 #define SCHAR_MIN 0x80
#define SCHAR_MAX 0x7f #define SCHAR_MAX 0x7f
@@ -85,7 +85,7 @@
#define UCHAR_DIG 0x2 #define UCHAR_DIG 0x2
#define UCHAR_DECIMAL_DIG 0x0 #define UCHAR_DECIMAL_DIG 0x0
#define UCHAR_RADIX 0x2 #define UCHAR_RADIX 0x2
#define UCHAR_TRAPS 0xfalse #define UCHAR_TRAPS 0xtrue
#define UCHAR_MIN 0x0 #define UCHAR_MIN 0x0
#define UCHAR_MAX 0xff #define UCHAR_MAX 0xff
@@ -94,7 +94,7 @@
#define SHORT_DIG 0x4 #define SHORT_DIG 0x4
#define SHORT_DECIMAL_DIG 0x0 #define SHORT_DECIMAL_DIG 0x0
#define SHORT_RADIX 0x2 #define SHORT_RADIX 0x2
#define SHORT_TRAPS 0xfalse #define SHORT_TRAPS 0xtrue
#define SHORT_MIN 0x8000 #define SHORT_MIN 0x8000
#define SHORT_MAX 0x7fff #define SHORT_MAX 0x7fff
@@ -103,7 +103,7 @@
#define USHORT_DIG 0x4 #define USHORT_DIG 0x4
#define USHORT_DECIMAL_DIG 0x0 #define USHORT_DECIMAL_DIG 0x0
#define USHORT_RADIX 0x2 #define USHORT_RADIX 0x2
#define USHORT_TRAPS 0xfalse #define USHORT_TRAPS 0xtrue
#define USHORT_MIN 0x0 #define USHORT_MIN 0x0
#define USHORT_MAX 0xffff #define USHORT_MAX 0xffff
@@ -112,7 +112,7 @@
#define INT_DIG 0x9 #define INT_DIG 0x9
#define INT_DECIMAL_DIG 0x0 #define INT_DECIMAL_DIG 0x0
#define INT_RADIX 0x2 #define INT_RADIX 0x2
#define INT_TRAPS 0xfalse #define INT_TRAPS 0xtrue
#define INT_MIN 0x80000000 #define INT_MIN 0x80000000
#define INT_MAX 0x7fffffff #define INT_MAX 0x7fffffff
@@ -121,34 +121,34 @@
#define UINT_DIG 0x9 #define UINT_DIG 0x9
#define UINT_DECIMAL_DIG 0x0 #define UINT_DECIMAL_DIG 0x0
#define UINT_RADIX 0x2 #define UINT_RADIX 0x2
#define UINT_TRAPS 0xfalse #define UINT_TRAPS 0xtrue
#define UINT_MIN 0x0 #define UINT_MIN 0x0
#define UINT_MAX 0xffffffff #define UINT_MAX 0xffffffff
#define LONG_ROUNDS 0x0 #define LONG_ROUNDS 0x0
#define LONG_RADIX_DIG 0x1f #define LONG_RADIX_DIG 0x3f
#define LONG_DIG 0x9 #define LONG_DIG 0x12
#define LONG_DECIMAL_DIG 0x0 #define LONG_DECIMAL_DIG 0x0
#define LONG_RADIX 0x2 #define LONG_RADIX 0x2
#define LONG_TRAPS 0xfalse #define LONG_TRAPS 0xtrue
#define LONG_MIN 0x80000000 #define LONG_MIN 0x8000000000000000
#define LONG_MAX 0x7fffffff #define LONG_MAX 0x7fffffffffffffff
#define ULONG_ROUNDS 0x0 #define ULONG_ROUNDS 0x0
#define ULONG_RADIX_DIG 0x20 #define ULONG_RADIX_DIG 0x40
#define ULONG_DIG 0x9 #define ULONG_DIG 0x13
#define ULONG_DECIMAL_DIG 0x0 #define ULONG_DECIMAL_DIG 0x0
#define ULONG_RADIX 0x2 #define ULONG_RADIX 0x2
#define ULONG_TRAPS 0xfalse #define ULONG_TRAPS 0xtrue
#define ULONG_MIN 0x0 #define ULONG_MIN 0x0
#define ULONG_MAX 0xffffffff #define ULONG_MAX 0xffffffffffffffff
#define LLONG_ROUNDS 0x0 #define LLONG_ROUNDS 0x0
#define LLONG_RADIX_DIG 0x3f #define LLONG_RADIX_DIG 0x3f
#define LLONG_DIG 0x12 #define LLONG_DIG 0x12
#define LLONG_DECIMAL_DIG 0x0 #define LLONG_DECIMAL_DIG 0x0
#define LLONG_RADIX 0x2 #define LLONG_RADIX 0x2
#define LLONG_TRAPS 0xfalse #define LLONG_TRAPS 0xtrue
#define LLONG_MIN 0x8000000000000000 #define LLONG_MIN 0x8000000000000000
#define LLONG_MAX 0x7fffffffffffffff #define LLONG_MAX 0x7fffffffffffffff
@@ -157,7 +157,7 @@
#define ULLONG_DIG 0x13 #define ULLONG_DIG 0x13
#define ULLONG_DECIMAL_DIG 0x0 #define ULLONG_DECIMAL_DIG 0x0
#define ULLONG_RADIX 0x2 #define ULLONG_RADIX 0x2
#define ULLONG_TRAPS 0xfalse #define ULLONG_TRAPS 0xtrue
#define ULLONG_MIN 0x0 #define ULLONG_MIN 0x0
#define ULLONG_MAX 0xffffffffffffffff #define ULLONG_MAX 0xffffffffffffffff

View File

@@ -256,7 +256,7 @@ namespace fennec
using intmax_t = intmax_t; ///< \brief Maximum Width Signed Integer Type using intmax_t = intmax_t; ///< \brief Maximum Width Signed Integer Type
using uintmax_t = uintmax_t; ///< \brief Maximum Width Unsigned Integer Type using uintmax_t = uintmax_t; ///< \brief Maximum Width Unsigned Integer Type
using size_t = size_t; ///< \brief Unsigned Integer Type Returned By `sizeof`, `sizeof...`, and `alignof` using size_t = size_t; ///< \brief Unsigned Integer Type Returned By `sizeof`, `sizeof...`, and `alignof`
using ptrdiff_t = ptrdiff_t; ///< \brief Signed Integer Type Returned by the Subtraction of two Pointers using ptrdiff_t = __PTRDIFF_TYPE__; ///< \brief Signed Integer Type Returned by the Subtraction of two Pointers
class undefined_t; ///< \brief undefined class for SFINAE class undefined_t; ///< \brief undefined class for SFINAE
template<typename...> using void_t = void; ///< \brief Void type used for SFINAE template<typename...> using void_t = void; ///< \brief Void type used for SFINAE

View File

@@ -451,13 +451,13 @@ constexpr vector<genType, i...> trunc(const vector<genType, i...>& x)
template<typename genType> template<typename genType>
constexpr genType roundEven(genType x) constexpr genType roundEven(genType x)
{ {
const float e = numeric_limits<genType>::epsilon(); const genType e = numeric_limits<genType>::epsilon();
float f = x - fennec::floor(x); genType f = x - fennec::floor(x);
if (fennec::abs(f - genType(0.5)) > e) if (fennec::abs(f - genType(0.5)) > e)
return fennec::round(x); return fennec::round(x);
float i = fennec::floor(x); genType i = fennec::floor(x);
float r = i / 2; genType r = i / 2;
bool up = r - fennec::floor(r) > e; bool up = r - fennec::floor(r) > e;
return i + static_cast<genType>(up); return i + static_cast<genType>(up);
} }