diff --git a/format.h b/format.h index 91b5ec6a..c8cf72ef 100644 --- a/format.h +++ b/format.h @@ -1218,14 +1218,9 @@ template struct NamedArg : Arg { BasicStringRef name; - typedef internal::MakeValue< BasicFormatter > MakeValue; - template NamedArg(BasicStringRef argname, const T &x) - : name(argname) { - value = MakeValue(x); - type = static_cast(MakeValue::type(x)); - } + : Arg(internal::MakeArg< BasicFormatter >(x)), name(argname) {} }; #define FMT_DISPATCH(call) static_cast(this)->call @@ -2900,11 +2895,8 @@ void format(BasicFormatter &f, const Char *&format_str, const T &value) { output << value; BasicStringRef str(&buffer[0], format_buf.size()); - typedef internal::MakeValue< BasicFormatter > MakeValue; - internal::Arg arg; - arg.value = MakeValue(str); - arg.type = static_cast(MakeValue::type(str)); - format_str = f.format(format_str, arg); + typedef internal::MakeArg< BasicFormatter > MakeArg; + format_str = f.format(format_str, MakeArg(str)); } // Reports a system error without throwing an exception.