I would like to programmatically retrieve members of a subclass to create a self-documenting interface. I am afraid that my approach is not possible due to need for compile time __traits / std.traits, and runtime typeinfo. My proposed approach is as follows:

class Base
{
    string whatever;

    string toString()
    {
// loop over __traits(allMembers, typeof(this)) or getSymbolsByUDA, etc.
    }
}

/// There may be a dozen Derived classes
class Derived1 : Base
{
    @Config("a name", "a description")
    float probability;
}
class Derived2 : Base
{
    @Config("another", "more description")
    int replicates;
}
...

Unfortunately, I am afraid this doesn't look possible because of the need for compile-time UDAs and runtime TypeInfo. Is there a way to do this without re-implementing toString in every single derived class? I expect there to be many derived classes.

Other ideas welcomed, as I usually write C-style D and am only recently taking a stab at OO Inheritance features.

Thanks in advance.
James

Reply via email to