On Saturday, 24 September 2016 at 09:08:52 UTC, mikey wrote:
I'm trying to figure out how to best write a class with a property that is only evaluated when it's called for the first time. And that returns an object which shouldn't be modifiable a part of the owning class.

I've had a go at doing something like this but am not very sure if this is how to go about it.
[...]


        const(Obj) lazily() {
            if (_o is null) {
                _o = new Obj("working " ~ _s);
            }
            return cast(const(Obj)) _o;
        }
    }

You don't need to cast, from "mutable" to "const" is implicit:
https://dlang.org/spec/const3.html#implicit_conversions

Reply via email to