const by default.
Chad J
gamerChad at _spamIsBad_gmail.com
Mon Jul 3 22:17:46 PDT 2006
So far I'm pretty convinced that some kind of "constness" is a good
thing. I've already run into one area where this would be useful.
I have one peeve about it though: I really would not like it if the
keyword used to represent constness was "const". I will explain from my
newbie-to-Cplusplus background, having come from languages that seem, at
least to me, to be much more well thought out than Cplusplus.
When I see "const" I think of it as a shorthand for "constant", just as
"bool" is shorthand for "boolean". My understanding of something
constant is that it does not change... EVER. Thus it makes no sense to
me why something as ephemeral as data passed into a function could be
considered constant. If the constant data leaves the scope of the
function, becomes no longer constant, and gets changed, then it isn't
really constant to me.
I do like the mutable word though, as it seems to have an english
meaning very close to its programming meaning :)
It also seems that if we were to make things immutable by default, we
could make an "immutable" keyword. Sure it's kinda long, but since most
things are that by default then we won't be typing it much. It also
seems so much more logically related to the word "mutable".
Another worry I have is that of being stuck with many instances of
"mutable" littering my code, if only because said code happens to modify
referenced data a lot. One way I might see this worry dissappearing if
there was a way to blanket stuff into being immutable, in order to avoid
repeating the word over and over again. Sorta like:
class Foo
{
mutable:
int[] data; // this is mutable
char[] name; // this too
// etc
}
or maybe even something as radical as
mutable
{
// from now on everything works as it used to
void func1( char[] string1, char[] string2 )
{
string1[5] = 'a'; // ok
string2[3] = 'b'; // also good
}
void func2( int[] data )
{
data[8] = 42; // just dandy.
}
}
Note: I am probably so newbish at language design compared to you guys
it is not even funny, so maybe the syntax suggestions suck, but please
consider my naming plea, at least as a "this experience was unpleasant
so please fix it" sorta thing.
More information about the Digitalmars-d
mailing list