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