diff --git a/format.cc b/format.cc index 4be211e5..4739d7bb 100644 --- a/format.cc +++ b/format.cc @@ -400,7 +400,7 @@ void fmt::BasicFormatter::CheckSign(const Char *&s, const Arg &arg) { ReportError(s, Format("format specifier '{0}' requires numeric argument") << *s); } - if (arg.type == UINT || arg.type == ULONG || arg.type == ULLONG) { + if (arg.type == UINT || arg.type == ULONG || arg.type == ULONG_LONG) { ReportError(s, Format("format specifier '{0}' requires signed argument") << *s); } @@ -537,9 +537,9 @@ void fmt::BasicFormatter::DoFormat() { case ULONG: value = precision_arg.ulong_value; break; - case ULLONG: + case ULONG_LONG: value = precision_arg.ulong_long_value; - break; + break; default: ReportError(s, "precision is not integer"); } @@ -581,9 +581,9 @@ void fmt::BasicFormatter::DoFormat() { case ULONG: writer.FormatInt(arg.ulong_value, spec); break; - case ULLONG: + case ULONG_LONG: writer.FormatInt(arg.ulong_long_value, spec); - break; + break; case DOUBLE: writer.FormatDouble(arg.double_value, spec, precision); break; diff --git a/format.h b/format.h index f4ed7720..5e041f4f 100644 --- a/format.h +++ b/format.h @@ -189,9 +189,6 @@ struct SignedIntTraits { template <> struct IntTraits : SignedIntTraits {}; -template <> -struct IntTraits : SignedIntTraits {}; - template <> struct IntTraits : SignedIntTraits {}; @@ -815,7 +812,7 @@ class BasicFormatter { enum Type { // Numeric types should go first. - INT, UINT, LONG, ULONG, ULLONG, DOUBLE, LONG_DOUBLE, + INT, UINT, LONG, ULONG, ULONG_LONG, DOUBLE, LONG_DOUBLE, LAST_NUMERIC_TYPE = LONG_DOUBLE, CHAR, STRING, WSTRING, POINTER, CUSTOM }; @@ -870,7 +867,8 @@ class BasicFormatter { Arg(unsigned value) : type(UINT), uint_value(value), formatter(0) {} Arg(long value) : type(LONG), long_value(value), formatter(0) {} Arg(unsigned long value) : type(ULONG), ulong_value(value), formatter(0) {} - Arg(unsigned long long value) : type(ULLONG), ulong_long_value(value), formatter(0) {} + Arg(unsigned long long value) + : type(ULONG_LONG), ulong_long_value(value), formatter(0) {} Arg(float value) : type(DOUBLE), double_value(value), formatter(0) {} Arg(double value) : type(DOUBLE), double_value(value), formatter(0) {} Arg(long double value) @@ -1154,7 +1152,7 @@ class FormatInt { enum {BUFFER_SIZE = std::numeric_limits::digits10 + 3}; char buffer_[BUFFER_SIZE]; char *str_; - + // Formats value in reverse and returns the number of digits. char *FormatDecimal(uint64_t value) { char *buffer_end = buffer_ + BUFFER_SIZE;