--- 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<class T> FormatArgument (const List<T>& list) { if (list.isEmpty()) @@ -148,7 +152,7 @@ { std::vector<String> 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<typename... argtypes> -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...)); } //