The case is different --I mean the comparison does not hold IIUC.
Virtual methods are /intended/ to be overriden, this is precisely part
of their semantics. While the whole point of const-the-D-way is to
ensure actual constness as marked in a given function's signature,
whatever this function itself calls. The contract is such that the
reader does not even need to watch further. Again, IIUC (please correct
if I'm wrong on this).
Denis
Well you are thinking with the current usage.
---
const int i;
const A a;
---
Think about these two lines. If this is a C++ code, you can't say much
about their constness.
But if this is a D code, you can say many things about each line and go
even further and say their constness is exactly same!
What i am getting at is that if we have this affinity between types and
constness always a first class attribute why don't we go even further and
drop the signatures all together and make constness accessible to every
single D code written. Walter and Steve are talking about the contract
feature we give to const signature, i am not saying it is wrong or it has
lesser importance than they claim. I am just questioning if this what CS
should be.