On Friday, 17 August 2012 at 01:17:19 UTC, Mehrdad wrote:

How?


Jon said "you know that the elements aren't altered either - or anything which the elements point to".


I just showed that the const-ness of getStuff() tells you _nothing_ about that fact.

Did I miss something?

Yeah. Again, you can't modify __the const view__. It's legal for const things to be mutable underneath. And it's legal to modify mutable things via mutable views. Ergo, const things can change that way. But that's not what he's trying to tell you.

If you want something to be guaranteed to never change through any means, you use immutable. And if you find a way to mutate immutable things (without casts), it's a bug, not a feature (and thus should be reported).

I'm pretty sure everyone's aware of the inconsistency with immutable and the constructors at this time (like the bug I pointed out above), so that's kind of a weak point where the programmer actually has to know what they're doing, but I'm sure that'll be fixed at some point.

Reply via email to