0nnn octal notation considered harmful

Don nospam at nospam.com
Sat Feb 12 10:27:32 PST 2011


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.


More information about the Digitalmars-d mailing list