diff --git a/include/fmt/chrono.h b/include/fmt/chrono.h index d1f45e9d..85f4d9b9 100644 --- a/include/fmt/chrono.h +++ b/include/fmt/chrono.h @@ -1701,7 +1701,7 @@ struct chrono_formatter { } } - template void write_fractional_seconds(Duration d, int precision) { + template void write_fractional_seconds_p(Duration d) { constexpr auto num_fractional_digits = count_fractional_digits::value; @@ -1728,7 +1728,7 @@ struct chrono_formatter { out = std::fill_n(out, zeroes, '0'); int remaining = precision - (zeroes > 0 ? zeroes : 0); if (remaining < num_digits) { - n /= detail::pow10(num_digits - remaining); + n /= to_unsigned(detail::pow10(to_unsigned(num_digits - remaining))); out = format_decimal(out, n, remaining).end; return; } @@ -1831,7 +1831,7 @@ struct chrono_formatter { } else { write(second(), 2); if (precision >= 0) { - write_fractional_seconds(std::chrono::duration(val), precision); + write_fractional_seconds_p(std::chrono::duration(val)); } else { write_fractional_seconds(std::chrono::duration(val)); }