Dlang: получить имена всех суперклассов для экземпляра в виде массива - PullRequest
0 голосов
/ 02 ноября 2019

Я могу получить полное имя класса экземпляра с помощью fullQualifiedName, но как я могу получить полностью QualifiedNames всех его суперклассов? Возможно ли это?

1 Ответ

3 голосов
/ 02 ноября 2019

Использовать std.traits.BaseClassesTuple .

import std.traits, std.stdio, std.meta;

class A {}
class B: A{}
class C: B{}

void main(){
    auto instance = new C;
    static foreach(T; AliasSeq!(typeof(instance), BaseClassesTuple!(typeof(instance))))
        writeln(fullyQualifiedName!T);
}
...