Peter Alexander wrote:
Just to clarify my position

- I *do not* want to copy C++'s const system.
- D style immutability is useful.
- C++ style logical const is also useful.
- I think they can both work side by side by introducing a new level of const and the mutable keyword.


Once mutable is introduced, the const attribute becomes no longer useful. You (and the compiler) can no longer look at a function signature and reason about the const-ness behavior. If a new attribute is introduced, "newlevel", you really cannot reason about the behavior at all.

I wish to emphasize that the compiler cannot provide any verification that logical constness is indeed happening. (It cannot do it in C++, either, the notion that the C++ type system supports logical constness is incorrect.)

Reply via email to