diff --git a/include/fmt/format.h b/include/fmt/format.h index de744b0f..d0293579 100644 --- a/include/fmt/format.h +++ b/include/fmt/format.h @@ -428,9 +428,9 @@ using needs_conversion = bool_constant< template ::value)> -FMT_CONSTEXPR OutputIt copy_str(InputIt begin, InputIt end, OutputIt it) { - while (begin != end) *it++ = *begin++; - return it; +FMT_CONSTEXPR OutputIt copy_str(InputIt begin, InputIt end, OutputIt out) { + while (begin != end) *out++ = *begin++; + return out; } template ::value)> -OutputIt copy_str(InputIt begin, InputIt end, OutputIt it) { - while (begin != end) *it++ = static_cast(*begin++); - return it; +OutputIt copy_str(InputIt begin, InputIt end, OutputIt out) { + while (begin != end) *out++ = static_cast(*begin++); + return out; } template ::value)> -buffer_appender copy_str(InputIt begin, InputIt end, - buffer_appender out) { +appender copy_str(InputIt begin, InputIt end, appender out) { get_container(out).append(begin, end); return out; } template -FMT_NOINLINE OutputIt copy_str_noinline(InputIt begin, InputIt end, - OutputIt it) { - return copy_str(begin, end, it); +FMT_CONSTEXPR FMT_NOINLINE OutputIt copy_str_noinline(InputIt begin, + InputIt end, + OutputIt out) { + return copy_str(begin, end, out); } // A public domain branchless UTF-8 decoder by Christopher Wellons: @@ -1617,18 +1617,19 @@ inline OutputIt write_significand(OutputIt out, UInt significand, Char buffer[digits10() + 2]; auto end = write_significand(buffer, significand, significand_size, integral_size, decimal_point); - return detail::copy_str(buffer, end, out); + return detail::copy_str_noinline(buffer, end, out); } template inline OutputIt write_significand(OutputIt out, const char* significand, int significand_size, int integral_size, Char decimal_point) { - out = detail::copy_str(significand, significand + integral_size, out); + out = detail::copy_str_noinline(significand, + significand + integral_size, out); if (!decimal_point) return out; *out++ = decimal_point; - return detail::copy_str(significand + integral_size, - significand + significand_size, out); + return detail::copy_str_noinline(significand + integral_size, + significand + significand_size, out); } template @@ -1828,7 +1829,7 @@ OutputIt write(OutputIt out, string_view value) { template FMT_CONSTEXPR OutputIt write(OutputIt out, basic_string_view value) { auto it = reserve(out, value.size()); - it = copy_str(value.begin(), value.end(), it); + it = copy_str_noinline(value.begin(), value.end(), it); return base_iterator(out, it); }