On Tuesday, 29 August 2017 at 07:59:40 UTC, Andre Pany wrote:
On Monday, 28 August 2017 at 23:12:40 UTC, Moritz Maxeiner wrote:

In both cases S doesn't inherently how about C, which means a solution using default initialization is not feasible, as S.init can't know about any particular instance of C. I don't think there's any way for you to avoid using a class constructor.

Thanks for the explanation. I now tried to use a class and use a static opIndex. But it seems from a static method you also cannot access the attributes of a outer class :)

A nested class' outer property (when nested inside another class) is a class reference, which means we not only require a class instance of the outer class to reference, but also a class instance of the nested class to store said class reference to the other class in. A static class method (by definition) is invoked without a class instance.
The two are inherently incompatible.

[...]

This seems like an unnecessary limitation...

I can only recommend reading the language specification w.r.t, nested classes [1] if it seems that way to you, because it is not.

[1] https://dlang.org/spec/class.html#nested

Reply via email to