Logical const
Walter Bright
newshound2 at digitalmars.com
Tue Nov 30 13:05:16 PST 2010
Steven Schveighoffer wrote:
> On Tue, 30 Nov 2010 15:16:04 -0500, Walter Bright
> <newshound2 at digitalmars.com> wrote:
>
>> 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?
No. There are a lot of things a member "x" could be. The const only applies to
the instance data.
More information about the Digitalmars-d
mailing list