On Thursday, 5 November 2020 at 22:48:38 UTC, Marcone wrote:
How add class or struct member after construction? Is it possible in D? How?

This depends a lot on what you mean. The short answer is no - you cannot. However, given some limitations, it is possible. What sort of members do you need to add, and how will you be using them?

For instance, this works:

struct S {
    import std.variant;
    Variant[string] members;

    Variant opDispatch(string name)() {
        return members[name];
    }
    Variant opDispatch(string name, T)(T value) {
        return members[name] = value;
    }
}

unittest {
    S s;
    s.foo = 13;
    assert(s.foo == 13);
}

--
  Simen

Reply via email to