spir wrote:
Hello,
Just had a strange bug --in a test func!-- caused by this notation. This
is due in my case to the practice (common, I guess) of "pretty printing"
int numbers using %0nd or %0ns format, to get a nice alignment. Then, if
one feeds back results into D code, they are interpreted as octal...
Now, i know it: will pad with spaces instead ;-)
Copying a string'ed integer is indeed not the only this notation is
bug-prone: prefixing a number with '0' should not change its value (!).
Several programming languages switched to another notation; like 0onnn,
which is consistent with common hex & bin notations and cannot lead to
misinterpretation. Such a change would be, I guess, backward compatible;
and would not be misleading for C coders.
Denis
Octal should just be dropped entirely. Retaining built-in octal literals
is like retaining support for EBCDIC. It's a relic of a time before
hexadecimal was invented.