include/fmt/format.h: int_writer: correctly cast signed integer to unsigned to prevent 'implicit conversion changes signedness'-warnings in clang.

This commit is contained in:
Martin Wührer 2020-08-12 18:09:45 +02:00
parent 412a658188
commit e6159ed1a9

View File

@ -1610,7 +1610,8 @@ template <typename OutputIt, typename Char, typename UInt> struct int_writer {
format_decimal(digits, abs_value, num_digits);
basic_memory_buffer<Char> buffer;
size += prefix_size;
buffer.resize(to_unsigned(size));
const auto usize = to_unsigned(size);
buffer.resize(usize);
basic_string_view<Char> s(&sep, sep_size);
// Index of a decimal digit with the least significant digit having index 0.
int digit_index = 0;
@ -1631,7 +1632,7 @@ template <typename OutputIt, typename Char, typename UInt> struct int_writer {
}
if (prefix_size != 0) p[-1] = static_cast<Char>('-');
auto data = buffer.data();
out = write_padded<align::right>(out, specs, size, size, [=](iterator it) {
out = write_padded<align::right>(out, specs, usize, usize, [=](iterator it) {
return copy_str<Char>(data, data + size, it);
});
}