Notes from C++ static analysis
    bearophile 
    bearophileHUGS at lycos.com
       
    Thu Jun 27 12:22:06 PDT 2013
    
    
  
Andrei Alexandrescu:
>> But the bottom line is I don't think we need to force anything 
>> on anybody. If anything, we could split up the internal format
>> implementation and provide format and safeFormat functions.
>>
>> format("%s %s", 1);  // no exceptions
>
> NO! This is exactly the kind of code that is buggy and useless. 
> The right use cases involve more arguments than format 
> specifiers.
Currently this code is accepted (and it prints "A B10"), but I 
think it should be not accepted (also why is it 1-based?):
import std.stdio;
void main() {
     writefln("A%2$s B%1$s", 10);
}
> The only point I'd negotiate would be to not throw with 
> positional
> arguments, and throw with sequential arguments. All code that 
> cares uses
> positional specifiers anyway.
I have opened this ER:
http://d.puremagic.com/issues/show_bug.cgi?id=10489
Bye,
bearophile
    
    
More information about the Digitalmars-d
mailing list