On Monday, 8 April 2013 at 12:39:58 UTC, Manu wrote:
On 8 April 2013 21:53, Iain Buclaw <[email protected]> wrote:
On 8 April 2013 12:41, deadalnix <[email protected]> wrote:
On Monday, 8 April 2013 at 09:41:52 UTC, Iain Buclaw wrote:
It uses some type information, eg:
const/immutable/wild -> qualified const.
shared -> qualified volatile.
shared + const/wild -> qualified const/volatile.
const/wild can be muted via aliasing. I'm not sure how GCC's
backend
understand const, but this seems unclear to me if this is
correct.
GCC's backend is pretty much C/C++ semantics. So the const
qualifier is
shallow, and does not guarantee that no mutations will occur.
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.
D const is transitive, surely that makes a difference/presents an
opportunity?