diff -r a7b769a0e537 -r 85814c0918c5 src/format.h --- a/src/format.h Fri May 02 20:37:27 2014 +0300 +++ b/src/format.h Fri May 02 21:37:18 2014 +0300 @@ -39,6 +39,7 @@ FormatArgument (char a) : m_text (a) {} FormatArgument (int a) : m_text (String::fromNumber (a)) {} FormatArgument (long a) : m_text (String::fromNumber (a)) {} + FormatArgument (size_t a) : m_text (String::fromNumber ((long) a)) {} FormatArgument (const char* a) : m_text (a) {} FormatArgument (void* a) @@ -51,6 +52,9 @@ m_text.sprintf ("%p", a); } + FormatArgument (std::nullptr_t) : + m_text (FormatArgument ((void*) 0).text()) {} + template FormatArgument (const List& list) { if (list.isEmpty()) @@ -148,7 +152,7 @@ { std::vector args; expandFormatArguments (args, raw_args...); - assert (args.size() == sizeof... (raw_args)); + ASSERT_EQ (args.size(), sizeof... (raw_args)) return formatArgs (fmtstr, args); } @@ -205,9 +209,9 @@ // caught in main() which prints the error to stderr and then exits. // template -void error (const String& fmtstr, const argtypes&... args) +void error (const char* fmtstr, const argtypes&... args) { - error (format (fmtstr, args...)); + error (format (String (fmtstr), args...)); } //