inout/const issue: assignments to field not allowed if field initializer present

Timon Gehr timon.gehr at gmx.ch
Sun Mar 11 03:06:56 PDT 2012


On 03/11/2012 02:46 AM, Andrej Mitrovic wrote:
> It took me a while to narrow this down:
>
> struct Foo
> {
>      int val = int.init;
>      this(inout(int) nval) inout {
>          this.val = nval;
>      }
> }
>
> test.d(18): Error: cannot modify const/immutable/inout expression this.val
>
> Is there any special reason why this should be disallowed? I mean the
> same thing happens if you do a void initialization: int val = void;
>
> A bug?

That a void-initialized field cannot be initialized is certainly a bug.


More information about the Digitalmars-d-learn mailing list