Adam D. Ruppe:

> bearophile wrote:
> > Currently this is not caught by D, it prints "12":
> > import std.stdio;
> > void main() {
> >    writefln("%d%d", 1, 2, 3);
> > }
> 
> That's not really an error. You might change out the format
> string at runtime based on user preferences, perhaps for
> internationalization, or other reasons.

Right, the format string is in general a run-time value, so you can't always 
catch this situation at compile-time.

 But how many times do you want to ignore some of the arguments listed? Even if 
this happens (and I don't remember needing this), I think it's not common 
enough to justify so permissive semantics at run-time.

Recently Andrei A. has expressed some opinions on this topic, but I don't 
remember the bug report number.

Bye,
bearophile

Reply via email to