now finally got the anti-ambiguity overloads right, right?

This commit is contained in:
Pavel Novikov 2025-09-06 02:22:41 +03:00
parent 7ae62ee0d5
commit 0a230326ab
No known key found for this signature in database
GPG Key ID: F2C305CAE4167D14

View File

@ -374,15 +374,15 @@ integer_times_pow10(int64_t mantissa, int decimal_exponent) noexcept {
// the following overloads are here to avoid surprising ambiguity for int, // the following overloads are here to avoid surprising ambiguity for int,
// unsigned, etc. // unsigned, etc.
template <typename Int> template <typename Int>
FASTFLOAT_CONSTEXPR20 inline std::enable_if_t< FASTFLOAT_CONSTEXPR20 inline typename std::enable_if<
std::is_integral<Int>::value && !std::is_signed<Int>::value, double> std::is_integral<Int>::value && !std::is_signed<Int>::value, double>::type
integer_times_pow10(Int mantissa, int decimal_exponent) noexcept { integer_times_pow10(Int mantissa, int decimal_exponent) noexcept {
return integer_times_pow10(static_cast<uint64_t>(mantissa), decimal_exponent); return integer_times_pow10(static_cast<uint64_t>(mantissa), decimal_exponent);
} }
template <typename Int> template <typename Int>
FASTFLOAT_CONSTEXPR20 inline std::enable_if_t< FASTFLOAT_CONSTEXPR20 inline typename std::enable_if<
std::is_integral<Int>::value && std::is_signed<Int>::value, double> std::is_integral<Int>::value && std::is_signed<Int>::value, double>::type
integer_times_pow10(Int mantissa, int decimal_exponent) noexcept { integer_times_pow10(Int mantissa, int decimal_exponent) noexcept {
return integer_times_pow10(static_cast<int64_t>(mantissa), decimal_exponent); return integer_times_pow10(static_cast<int64_t>(mantissa), decimal_exponent);
} }