Steven Schveighoffer wrote:The example that I gave does not seem to you like it would surprise someone? I passed in a const object and it got modified, even though no casts were used.No, it doesn't surprise me. Const on one object does not apply to another object.
So this: void myfn(const(C) n) { assert(n.x == 1); n.foo(); assert(n.x == 5); } Wouldn't be surprising to you? -Steve