Clean-up sign-conversion warnings in public headers
This commit is contained in:
parent
3bc28fcc6b
commit
1fab9fc128
@ -696,7 +696,7 @@ inline int to_nonnegative_int(T value, int upper) {
|
|||||||
|
|
||||||
template <typename T, FMT_ENABLE_IF(std::is_integral<T>::value)>
|
template <typename T, FMT_ENABLE_IF(std::is_integral<T>::value)>
|
||||||
inline T mod(T x, int y) {
|
inline T mod(T x, int y) {
|
||||||
return x % y;
|
return x % static_cast<T>(y);
|
||||||
}
|
}
|
||||||
template <typename T, FMT_ENABLE_IF(std::is_floating_point<T>::value)>
|
template <typename T, FMT_ENABLE_IF(std::is_floating_point<T>::value)>
|
||||||
inline T mod(T x, int y) {
|
inline T mod(T x, int y) {
|
||||||
@ -793,11 +793,7 @@ struct chrono_formatter {
|
|||||||
|
|
||||||
explicit chrono_formatter(FormatContext& ctx, OutputIt o,
|
explicit chrono_formatter(FormatContext& ctx, OutputIt o,
|
||||||
std::chrono::duration<Rep, Period> d)
|
std::chrono::duration<Rep, Period> d)
|
||||||
: context(ctx), out(o), val(d.count()), negative(false) {
|
: context(ctx), out(o), val(static_cast<rep>(std::abs(d.count()))), negative(d.count() < 0) {
|
||||||
if (d.count() < 0) {
|
|
||||||
val = 0 - val;
|
|
||||||
negative = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// this may overflow and/or the result may not fit in the
|
// this may overflow and/or the result may not fit in the
|
||||||
// target type.
|
// target type.
|
||||||
@ -1023,8 +1019,8 @@ struct formatter<std::chrono::duration<Rep, Period>, Char> {
|
|||||||
void on_error(const char* msg) { FMT_THROW(format_error(msg)); }
|
void on_error(const char* msg) { FMT_THROW(format_error(msg)); }
|
||||||
void on_fill(Char fill) { f.specs.fill[0] = fill; }
|
void on_fill(Char fill) { f.specs.fill[0] = fill; }
|
||||||
void on_align(align_t align) { f.specs.align = align; }
|
void on_align(align_t align) { f.specs.align = align; }
|
||||||
void on_width(unsigned width) { f.specs.width = width; }
|
void on_width(int width) { f.specs.width = width; }
|
||||||
void on_precision(unsigned _precision) { f.precision = _precision; }
|
void on_precision(int _precision) { f.precision = _precision; }
|
||||||
void end_precision() {}
|
void end_precision() {}
|
||||||
|
|
||||||
template <typename Id> void on_dynamic_width(Id arg_id) {
|
template <typename Id> void on_dynamic_width(Id arg_id) {
|
||||||
|
|||||||
@ -26,11 +26,11 @@ template <typename Char> struct format_part {
|
|||||||
|
|
||||||
kind part_kind;
|
kind part_kind;
|
||||||
union value {
|
union value {
|
||||||
unsigned arg_index;
|
int arg_index;
|
||||||
basic_string_view<Char> str;
|
basic_string_view<Char> str;
|
||||||
replacement repl;
|
replacement repl;
|
||||||
|
|
||||||
FMT_CONSTEXPR value(unsigned index = 0) : arg_index(index) {}
|
FMT_CONSTEXPR value(int index = 0) : arg_index(index) {}
|
||||||
FMT_CONSTEXPR value(basic_string_view<Char> s) : str(s) {}
|
FMT_CONSTEXPR value(basic_string_view<Char> s) : str(s) {}
|
||||||
FMT_CONSTEXPR value(replacement r) : repl(r) {}
|
FMT_CONSTEXPR value(replacement r) : repl(r) {}
|
||||||
} val;
|
} val;
|
||||||
@ -40,7 +40,7 @@ template <typename Char> struct format_part {
|
|||||||
FMT_CONSTEXPR format_part(kind k = kind::arg_index, value v = {})
|
FMT_CONSTEXPR format_part(kind k = kind::arg_index, value v = {})
|
||||||
: part_kind(k), val(v) {}
|
: part_kind(k), val(v) {}
|
||||||
|
|
||||||
static FMT_CONSTEXPR format_part make_arg_index(unsigned index) {
|
static FMT_CONSTEXPR format_part make_arg_index(int index) {
|
||||||
return format_part(kind::arg_index, index);
|
return format_part(kind::arg_index, index);
|
||||||
}
|
}
|
||||||
static FMT_CONSTEXPR format_part make_arg_name(basic_string_view<Char> name) {
|
static FMT_CONSTEXPR format_part make_arg_name(basic_string_view<Char> name) {
|
||||||
@ -62,7 +62,7 @@ template <typename Char> struct part_counter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
FMT_CONSTEXPR void on_arg_id() { ++num_parts; }
|
FMT_CONSTEXPR void on_arg_id() { ++num_parts; }
|
||||||
FMT_CONSTEXPR void on_arg_id(unsigned) { ++num_parts; }
|
FMT_CONSTEXPR void on_arg_id(int) { ++num_parts; }
|
||||||
FMT_CONSTEXPR void on_arg_id(basic_string_view<Char>) { ++num_parts; }
|
FMT_CONSTEXPR void on_arg_id(basic_string_view<Char>) { ++num_parts; }
|
||||||
|
|
||||||
FMT_CONSTEXPR void on_replacement_field(const Char*) {}
|
FMT_CONSTEXPR void on_replacement_field(const Char*) {}
|
||||||
@ -119,7 +119,7 @@ class format_string_compiler : public error_handler {
|
|||||||
part_ = part::make_arg_index(parse_context_.next_arg_id());
|
part_ = part::make_arg_index(parse_context_.next_arg_id());
|
||||||
}
|
}
|
||||||
|
|
||||||
FMT_CONSTEXPR void on_arg_id(unsigned id) {
|
FMT_CONSTEXPR void on_arg_id(int id) {
|
||||||
parse_context_.check_arg_id(id);
|
parse_context_.check_arg_id(id);
|
||||||
part_ = part::make_arg_index(id);
|
part_ = part::make_arg_index(id);
|
||||||
}
|
}
|
||||||
@ -141,7 +141,7 @@ class format_string_compiler : public error_handler {
|
|||||||
auto it = parse_format_specs(begin, end, handler);
|
auto it = parse_format_specs(begin, end, handler);
|
||||||
if (*it != '}') on_error("missing '}' in format string");
|
if (*it != '}') on_error("missing '}' in format string");
|
||||||
repl.arg_id = part_.part_kind == part::kind::arg_index
|
repl.arg_id = part_.part_kind == part::kind::arg_index
|
||||||
? arg_ref<Char>(part_.val.arg_index)
|
? arg_ref<Char>(static_cast<int>(part_.val.arg_index))
|
||||||
: arg_ref<Char>(part_.val.str);
|
: arg_ref<Char>(part_.val.str);
|
||||||
auto part = part::make_replacement(repl);
|
auto part = part::make_replacement(repl);
|
||||||
part.arg_id_end = begin;
|
part.arg_id_end = begin;
|
||||||
@ -512,8 +512,6 @@ template <typename CompiledFormat, typename... Args,
|
|||||||
CompiledFormat>::value)>
|
CompiledFormat>::value)>
|
||||||
std::basic_string<Char> format(const CompiledFormat& cf, const Args&... args) {
|
std::basic_string<Char> format(const CompiledFormat& cf, const Args&... args) {
|
||||||
basic_memory_buffer<Char> buffer;
|
basic_memory_buffer<Char> buffer;
|
||||||
using range = buffer_range<Char>;
|
|
||||||
using context = buffer_context<Char>;
|
|
||||||
cf.format(std::back_inserter(buffer), args...);
|
cf.format(std::back_inserter(buffer), args...);
|
||||||
return to_string(buffer);
|
return to_string(buffer);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1244,7 +1244,7 @@ int snprintf_float(T value, int precision, float_specs specs,
|
|||||||
buffer<char>& buf);
|
buffer<char>& buf);
|
||||||
|
|
||||||
template <typename T> T promote_float(T value) { return value; }
|
template <typename T> T promote_float(T value) { return value; }
|
||||||
inline double promote_float(float value) { return value; }
|
inline double promote_float(float value) { return static_cast<double>(value); }
|
||||||
|
|
||||||
template <typename Handler>
|
template <typename Handler>
|
||||||
FMT_CONSTEXPR void handle_int_type_spec(char spec, Handler&& handler) {
|
FMT_CONSTEXPR void handle_int_type_spec(char spec, Handler&& handler) {
|
||||||
@ -2627,11 +2627,11 @@ class format_string_checker {
|
|||||||
FMT_CONSTEXPR void on_text(const Char*, const Char*) {}
|
FMT_CONSTEXPR void on_text(const Char*, const Char*) {}
|
||||||
|
|
||||||
FMT_CONSTEXPR void on_arg_id() {
|
FMT_CONSTEXPR void on_arg_id() {
|
||||||
arg_id_ = context_.next_arg_id();
|
arg_id_ = static_cast<unsigned>(context_.next_arg_id());
|
||||||
check_arg_id();
|
check_arg_id();
|
||||||
}
|
}
|
||||||
FMT_CONSTEXPR void on_arg_id(int id) {
|
FMT_CONSTEXPR void on_arg_id(int id) {
|
||||||
arg_id_ = id;
|
arg_id_ = static_cast<unsigned>(id);
|
||||||
context_.check_arg_id(id);
|
context_.check_arg_id(id);
|
||||||
check_arg_id();
|
check_arg_id();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -355,7 +355,7 @@ template <typename OutputIt, typename Char> class basic_printf_context {
|
|||||||
OutputIt out() { return out_; }
|
OutputIt out() { return out_; }
|
||||||
void advance_to(OutputIt it) { out_ = it; }
|
void advance_to(OutputIt it) { out_ = it; }
|
||||||
|
|
||||||
format_arg arg(unsigned id) const { return args_.get(id); }
|
format_arg arg(int id) const { return args_.get(id); }
|
||||||
|
|
||||||
basic_format_parse_context<Char>& parse_context() { return parse_ctx_; }
|
basic_format_parse_context<Char>& parse_context() { return parse_ctx_; }
|
||||||
|
|
||||||
@ -399,10 +399,10 @@ template <typename OutputIt, typename Char>
|
|||||||
typename basic_printf_context<OutputIt, Char>::format_arg
|
typename basic_printf_context<OutputIt, Char>::format_arg
|
||||||
basic_printf_context<OutputIt, Char>::get_arg(unsigned arg_index) {
|
basic_printf_context<OutputIt, Char>::get_arg(unsigned arg_index) {
|
||||||
if (arg_index == internal::max_value<unsigned>())
|
if (arg_index == internal::max_value<unsigned>())
|
||||||
arg_index = parse_ctx_.next_arg_id();
|
arg_index = static_cast<unsigned>(parse_ctx_.next_arg_id());
|
||||||
else
|
else
|
||||||
parse_ctx_.check_arg_id(--arg_index);
|
parse_ctx_.check_arg_id(static_cast<int>(--arg_index));
|
||||||
return internal::get_arg(*this, arg_index);
|
return internal::get_arg(*this, static_cast<int>(arg_index));
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename OutputIt, typename Char>
|
template <typename OutputIt, typename Char>
|
||||||
@ -414,10 +414,10 @@ unsigned basic_printf_context<OutputIt, Char>::parse_header(
|
|||||||
// Parse an argument index (if followed by '$') or a width possibly
|
// Parse an argument index (if followed by '$') or a width possibly
|
||||||
// preceded with '0' flag(s).
|
// preceded with '0' flag(s).
|
||||||
internal::error_handler eh;
|
internal::error_handler eh;
|
||||||
unsigned value = parse_nonnegative_int(it, end, eh);
|
int value = parse_nonnegative_int(it, end, eh);
|
||||||
if (it != end && *it == '$') { // value is an argument index
|
if (it != end && *it == '$') { // value is an argument index
|
||||||
++it;
|
++it;
|
||||||
arg_index = value;
|
arg_index = static_cast<unsigned>(value);
|
||||||
} else {
|
} else {
|
||||||
if (c == '0') specs.fill[0] = '0';
|
if (c == '0') specs.fill[0] = '0';
|
||||||
if (value != 0) {
|
if (value != 0) {
|
||||||
@ -436,8 +436,8 @@ unsigned basic_printf_context<OutputIt, Char>::parse_header(
|
|||||||
specs.width = parse_nonnegative_int(it, end, eh);
|
specs.width = parse_nonnegative_int(it, end, eh);
|
||||||
} else if (*it == '*') {
|
} else if (*it == '*') {
|
||||||
++it;
|
++it;
|
||||||
specs.width = visit_format_arg(
|
specs.width = static_cast<int>(visit_format_arg(
|
||||||
internal::printf_width_handler<char_type>(specs), get_arg());
|
internal::printf_width_handler<char_type>(specs), get_arg()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return arg_index;
|
return arg_index;
|
||||||
@ -473,11 +473,11 @@ OutputIt basic_printf_context<OutputIt, Char>::format() {
|
|||||||
c = it != end ? *it : 0;
|
c = it != end ? *it : 0;
|
||||||
if ('0' <= c && c <= '9') {
|
if ('0' <= c && c <= '9') {
|
||||||
internal::error_handler eh;
|
internal::error_handler eh;
|
||||||
specs.precision = static_cast<int>(parse_nonnegative_int(it, end, eh));
|
specs.precision = parse_nonnegative_int(it, end, eh);
|
||||||
} else if (c == '*') {
|
} else if (c == '*') {
|
||||||
++it;
|
++it;
|
||||||
specs.precision =
|
specs.precision =
|
||||||
visit_format_arg(internal::printf_precision_handler(), get_arg());
|
static_cast<int>(visit_format_arg(internal::printf_precision_handler(), get_arg()));
|
||||||
} else {
|
} else {
|
||||||
specs.precision = 0;
|
specs.precision = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user