On 8 April 2013 23:01, John Colvin <[email protected]> wrote:
> 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? > No, I think that just makes it 'safer', or as many might say, "more annoying" ;)
