获取D中类的父级

获取D中类的父级,d,dmd,D,Dmd,如何从类外部获取类的基类型?我在文档中找到了traitparent,但我不知道如何使用它 module test; import std.stdio; class A {} class B : A { } void main() { writeln(typeid(__traits(parent, B))); writeln(typeid(__traits(parent, test.B))); // try prefixing with module name } 我希望至少

如何从类外部获取类的基类型?我在文档中找到了trait
parent
,但我不知道如何使用它

module test;
import std.stdio;

class A {}
class B : A { }

void main() {
    writeln(typeid(__traits(parent, B)));
    writeln(typeid(__traits(parent, test.B))); // try prefixing with module name
}
我希望至少在第二种情况下能拿到A,但这张照片

void
void
理想情况下,我希望将某个类T的基类分配给别名,并像使用任何其他类型一样使用它。例如:

alias T = __traits(parent, V);
T t = new T();
是关于范围的<代码>\u特征(父项,B)是
测试
模块。文档对此内容太模糊了

这就是你要找的

一般来说,首先查看
std.traits
。用户代码中不应该经常出现丑陋的特征


一些工作示例代码:

module test;
import std.stdio;
import std.traits;

class A {}
class B : A { }

void main() {
    writeln(__traits(parent, B).stringof); /* prints "module test" */
    alias Bases = BaseClassesTuple!B;
    writeln(Bases.stringof); /* prints "(A, Object)" */
    static assert(Bases.length > 0);
    alias T = Bases[0];
    auto t = new T;
}