Add workaround for VS2013

This commit is contained in:
Benoit Blanchon
2022-04-06 18:36:07 +02:00
parent 3f8f333c06
commit 4c222533af

View File

@@ -117,19 +117,19 @@ struct FloatTraits<T, 8 /*64bits*/> {
return forge(0x7FEFFFFF, 0xFFFFFFFF); return forge(0x7FEFFFFF, 0xFFFFFFFF);
} }
template <typename TOut> template <typename TOut> // int64_t
static typename enable_if<is_integral<TOut>::value && static T highest_for(
is_signed<TOut>::value && sizeof(TOut) == 8, typename enable_if<is_integral<TOut>::value && is_signed<TOut>::value &&
T>::type // TOut == int64_t sizeof(TOut) == 8,
highest_for() { signed>::type* = 0) {
return forge(0x43DFFFFF, 0xFFFFFFFF); // 9.2233720368547748e+18 return forge(0x43DFFFFF, 0xFFFFFFFF); // 9.2233720368547748e+18
} }
template <typename TOut> template <typename TOut> // uint64_t
static typename enable_if<is_integral<TOut>::value && static T highest_for(
is_unsigned<TOut>::value && sizeof(TOut) == 8, typename enable_if<is_integral<TOut>::value && is_unsigned<TOut>::value &&
T>::type // TOut == uint64_t sizeof(TOut) == 8,
highest_for() { unsigned>::type* = 0) {
return forge(0x43EFFFFF, 0xFFFFFFFF); // 1.8446744073709549568e+19 return forge(0x43EFFFFF, 0xFFFFFFFF); // 1.8446744073709549568e+19
} }
@@ -229,35 +229,35 @@ struct FloatTraits<T, 4 /*32bits*/> {
return forge(0x7f7fffff); return forge(0x7f7fffff);
} }
template <typename TOut> template <typename TOut> // int32_t
static typename enable_if<is_integral<TOut>::value && static T highest_for(
is_signed<TOut>::value && sizeof(TOut) == 4, typename enable_if<is_integral<TOut>::value && is_signed<TOut>::value &&
T>::type // TOut == int32_t sizeof(TOut) == 4,
highest_for() { signed>::type* = 0) {
return forge(0x4EFFFFFF); // 2.14748352E9 return forge(0x4EFFFFFF); // 2.14748352E9
} }
template <typename TOut> template <typename TOut> // uint32_t
static typename enable_if<is_integral<TOut>::value && static T highest_for(
is_unsigned<TOut>::value && sizeof(TOut) == 4, typename enable_if<is_integral<TOut>::value && is_unsigned<TOut>::value &&
T>::type // TOut == uint32_t sizeof(TOut) == 4,
highest_for() { unsigned>::type* = 0) {
return forge(0x4F7FFFFF); // 4.29496704E9 return forge(0x4F7FFFFF); // 4.29496704E9
} }
template <typename TOut> template <typename TOut> // int64_t
static typename enable_if<is_integral<TOut>::value && static T highest_for(
is_signed<TOut>::value && sizeof(TOut) == 8, typename enable_if<is_integral<TOut>::value && is_signed<TOut>::value &&
T>::type // TOut == int64_t sizeof(TOut) == 8,
highest_for() { signed>::type* = 0) {
return forge(0x5EFFFFFF); // 9.22337148709896192E18 return forge(0x5EFFFFFF); // 9.22337148709896192E18
} }
template <typename TOut> template <typename TOut> // uint64_t
static typename enable_if<is_integral<TOut>::value && static T highest_for(
is_unsigned<TOut>::value && sizeof(TOut) == 8, typename enable_if<is_integral<TOut>::value && is_unsigned<TOut>::value &&
T>::type // TOut == uint64_t sizeof(TOut) == 8,
highest_for() { unsigned>::type* = 0) {
return forge(0x5F7FFFFF); // 1.844674297419792384E19 return forge(0x5F7FFFFF); // 1.844674297419792384E19
} }