On Thursday, 15 March 2018 at 13:44:20 UTC, Seb wrote:
On Thursday, 15 March 2018 at 10:57:52 UTC, Mike Parker wrote:
On Thursday, 15 March 2018 at 10:55:16 UTC, Mike Parker wrote:


class A {
    private int _value = 12;

    int value() @property { return _value; }
    void updateValue() { value = 13; }
}

...
auto a = new A();
writeln(a.value);
a.updateValue();
writeln(a.value);

Sorry. I overlooked that B.a is const.

It still works, the `value` just needs to be `const` (or `inout`) and _value needs to be used in updateValue:

class A {
    private int _value = 12;

    int value() const { return _value; }
    void updateValue() { _value = 13; }
}


auto a = new A();
writeln(a.value);
a.updateValue();
writeln(a.value);


In action: https://run.dlang.io/is/Tk1rY1

@Robert: If you need this a lot, the accessors package might be interesting to you:

https://code.dlang.org/packages/accessors

... and I didn't add `const` to A

-> https://run.dlang.io/is/QObN1w

but better have a look at Simen's response (https://forum.dlang.org/post/ottyywbmrwgfabgpf...@forum.dlang.org), it's what you are looking for. I read too quickly and only have of it :/

Reply via email to