- Fixed some minor issues due to MSVC compat
This commit is contained in:
@@ -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")
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user