@@ -373,25 +373,17 @@ integer_times_pow10(int64_t mantissa, int decimal_exponent) noexcept {
373373
374374// the following overloads are here to avoid surprising ambiguity for int,
375375// unsigned, etc.
376- #if !defined(_MSC_VER)
377- FASTFLOAT_CONSTEXPR20 inline double
378- integer_times_pow10 (unsigned long long mantissa,
379- int decimal_exponent) noexcept {
380- return integer_times_pow10 (static_cast <uint64_t >(mantissa), decimal_exponent);
381- }
382-
383- FASTFLOAT_CONSTEXPR20 inline double
384- integer_times_pow10 (long long mantissa, int decimal_exponent) noexcept {
385- return integer_times_pow10 (static_cast <int64_t >(mantissa), decimal_exponent);
386- }
387- #endif
388- FASTFLOAT_CONSTEXPR20 inline double
389- integer_times_pow10 (unsigned mantissa, int decimal_exponent) noexcept {
376+ template <typename Int>
377+ FASTFLOAT_CONSTEXPR20 inline std::enable_if_t <
378+ std::is_integral<Int>::value && !std::is_signed<Int>::value, double >
379+ integer_times_pow10 (Int mantissa, int decimal_exponent) noexcept {
390380 return integer_times_pow10 (static_cast <uint64_t >(mantissa), decimal_exponent);
391381}
392382
393- FASTFLOAT_CONSTEXPR20 inline double
394- integer_times_pow10 (int mantissa, int decimal_exponent) noexcept {
383+ template <typename Int>
384+ FASTFLOAT_CONSTEXPR20 inline std::enable_if_t <
385+ std::is_integral<Int>::value && std::is_signed<Int>::value, double >
386+ integer_times_pow10 (Int mantissa, int decimal_exponent) noexcept {
395387 return integer_times_pow10 (static_cast <int64_t >(mantissa), decimal_exponent);
396388}
397389
0 commit comments