Am Wed, 26 Jun 2013 22:13:29 +0200 schrieb "Adam D. Ruppe" <destructiona...@gmail.com>:
> On Wednesday, 26 June 2013 at 20:06:43 UTC, H. S. Teoh wrote: > > But if the format string is known at compile-time, and there are > > extraneous arguments, then it should be a warning / error. > > We can't do that in D today, unless we do a writefln!"fmt"(args) > in addition to writefln(fmt, args...); > > tbh I kinda wish we could overload functions on literals though. So the compiler would eagerly turn arguments into compile-time parameters and offer some trait to check if a particular instantiation of writefln made 'fmt' a template argument ? static if (__traits(ctKnown, fmt)) { // do static analysis of format specifiers } else { // regular code path } -- Marco