From e74bc9974674da9bc5863e894966eea0724d5066 Mon Sep 17 00:00:00 2001 From: Stepan Ponomarev Date: Wed, 26 Oct 2022 12:29:55 +0200 Subject: [PATCH] Add alias for typename Duration::rep --- include/fmt/chrono.h | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/include/fmt/chrono.h b/include/fmt/chrono.h index cff225c4..840e11f1 100644 --- a/include/fmt/chrono.h +++ b/include/fmt/chrono.h @@ -1099,7 +1099,8 @@ void write_fractional_seconds(OutputIt& out, Duration d, int precision) { // pass the Rep value in the chrono_formatter. template void write_floating_seconds(memory_buffer& buf, Duration duration) { - FMT_ASSERT(std::is_floating_point::value, ""); + using Rep = typename Duration::rep; + FMT_ASSERT(std::is_floating_point::value, ""); auto num_fractional_digits = count_fractional_digits::value; @@ -1107,35 +1108,36 @@ void write_floating_seconds(memory_buffer& buf, Duration duration) { // precision. auto val = duration.count(); if (num_fractional_digits < 6 && - static_cast(std::round(val)) != val) + static_cast(std::round(val)) != val) num_fractional_digits = 6; format_to( std::back_inserter(buf), runtime("{:.{}f}"), std::fmod(val * - static_cast(Duration::period::num) / - static_cast(Duration::period::den), - static_cast(60)), + static_cast(Duration::period::num) / + static_cast(Duration::period::den), + static_cast(60)), num_fractional_digits); } template void write_floating_seconds(memory_buffer& buf, Duration duration, int precision) { + using Rep = typename Duration::rep; if (precision < 0) { write_floating_seconds(buf, duration); return; } - FMT_ASSERT(std::is_floating_point::value, ""); + FMT_ASSERT(std::is_floating_point::value, ""); auto val = duration.count(); format_to( std::back_inserter(buf), runtime("{:.{}f}"), std::fmod(val * - static_cast(Duration::period::num) / - static_cast(Duration::period::den), - static_cast(60)), + static_cast(Duration::period::num) / + static_cast(Duration::period::den), + static_cast(60)), precision); }