I'm fairly new to D, but I have been using C++ for a while now
(about 5 years, selftaught).
From what I have learned, const in C++ is inconsistent.
For example:
int main()
{
const int x = 0; // could be placed in ROM because it's known
at compile time
}
void f(int x)
{
const int y = x * x; // logical const
// blah blah blah
}
const can be also cast away (const_cast if I remember correctly -
I wasn't doing it often :) ) and mess everything.
From what I understand, immutable in D is truly immutable. But I
have seen some code here on the forum that casts aways
immutability... (Is that even defined behaviour? What if that
thing was in ROM?)
D has const as well... This is were it becomes a bit tricky for
me. To be honest, I haven't got the book about D - it should(does
it?) have information about that.
Can someone explain what are D's goal about immutable, const -
and why it is bitwise const and not logical? How does it benefit
programs? I have read something about that in the "general
discussions" forum but posted the question here because it's for
me (and others) to learn about that.
Thanks.