On 03/25/2010 01:45 PM, Walter Bright wrote:
Andrei Alexandrescu wrote:
A: Use octal!"177"
W: Ugh.
A (esprit d'escalier): If you don't like the universal notation you
invented, who will?
Good point. As I recall, we expended an enormous amount of effort
working on template syntax, and I certainly feel that
octal!"177"
is far better than, say:
octal<"177">.value
but when I compare it to
0177
that's just hard to beat. A customized syntax is always going to be
better than a generic one. The octal syntax is used in several widely
popular languages, and is convenient and looks attractive. It's used a
lot in dealing with the unix file system.
Symbolic constants are the best way to deal with the filesystem.
It's not at all hard to beat. It would be if octal constants would be
ubiquitous and ubiquitously useful. To disabuse yourself of that
fallacious notion, PLEASE grep ALL your code for
[^0-9A-Za-Z."%_:\]0[0-9]
and let us know how many instances you find.
druntime has 152 octal constants for a total of 53130 lines. That's one
for each 350 lines of code, or less than 0.3%. Ironically, most
occurrences are used in defining symbolic constants that are good style
for handling permission bits.
For Phobos I counted 11 true positives in 93,963 lines, which means one
per 8542 lines of code or 0.01% of total.
Andrei