On Sunday, November 17, 2013 22:08:38 Rob T wrote: > Good points, got it down to this. > > void error(string a_Msg, string file = __FILE__, size_t line = > __LINE__) > { > writefln( a_Msg ~ ". In file %s on line %d.", file, line ); > } > > int main() > { > format("hallo").error; > format("Hallo %s.", "du da").error; > } > > There should be no more template bloat, and it looks to be about > as usable and simple as possible. > > Do you see any further optimizations that do not increase the > usage convenience?
Yeah. Don't use concatenation in your format string: writefln("%s. In file %s on line %s.", msg, file, line); Other than that, it looks fine. Personally, I'd change it to writefln("%s(%s): %s", file, line, msg); but that's personal preference. - Jonathan M Davis