On 9 April 2013 13:30, Walter Bright <newshound2@digitalmars.com> wrote:
On 4/8/2013 5:39 AM, Manu wrote:
But D makes no further guarantee. I don't see how const in D is any different
than const in C++ in that sense? That's basically the concept of const, it's not
a useful concept for optimisation, only immutable is.

In C++, it is legal to cast away const and mutate it. That is undefined behavior in D.

A D compiler can assume, for example, that a const reference passed to a pure function will not mutate that reference, nor anything transitively referred to by that reference. No such assumption can be made like that in C++.

But that's meaningless though, because there's always the possibility that something somewhere else may have a non-const reference to that thing.
Can you suggest a case where const could EVER be used in any sort of optimisation?
I don't think const can possibly offer anything to the optimiser in any language, only type safety... I'd love to be wrong.