Extended Type Design ~ don't forget about enum

kris foo at bar.com
Tue Mar 20 10:08:20 PDT 2007


Lars Ivar Igesund wrote:
> Don Clugston wrote:
> 
> 
>>I completely agree with this. The gripe I have is that 'const' is a
>>completely inappropriate term for 'const-as-in-C++'. It's a bizarre
>>misnomer to use 'const' to mean "don't touch". The only benefit (albeit
>>a considerable one) of this nomenclature is compatibility with C++
>>nomenclature, especially the term "const correctness".
>>D currently has a 'const' which actually means "constant", it seems
>>dreadful to exchange that for a clearly inferior "don't touch" meaning.
>>I'm concerned that you may have spent so much time in C++ that you've
>>become accustomed to "const" == "don't touch"; all of my previous posts
>>have been arguing that this is a grossly unnatural association.
>>
>>It is possible that the C++ misnomer is so entrenched that D needs to
>>perpetuate it, even at the expense of breaking all existing D code that
>>uses 'const'.
> 
> 
> I agree with Don here.


So do I

Was somewhat hoping invariant would be used in place of what has now 
taken shape as "const", and "constant" would be used in place of where 
"invariant" has landed. Then there would be no "const" to confuse 
anyone. Almost seems as though shortening the name by a couple of bytes 
is actually more important than the meaning of the words in use?

I'm not sure about "breaking all existing D code" ... there would seem 
to be very little use of "const" at this time, because the current 
semantics are really kinda worthless; e.g. one should probably use enum 
for most things 'constant', except you can't have "enum : char[]" making 
enum notably less useful than it could otherwise be.

Where does enum fit in this picture anyway? Can it recover some duty 
from "const" and/or "final" in a logical and consistent manner?





More information about the Digitalmars-d mailing list