0nnn octal notation considered harmful

Tomek Sowiński just at ask.me
Fri Feb 11 14:52:34 PST 2011


spir napisał:

> 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.

This has been discussed before. There's octal!123 in Phobos if you don't like these confusing literals but they stay because Walter likes them. 

-- 
Tomek



More information about the Digitalmars-d mailing list