I'm having trouble getting the full name of an object of a class
that implements an interface, using typeid() or .classinfo, the
behavior seems to be different from that of a class that simply
derives other classes.
interface FooInterface {}
class BarImplementsInterface : FooInterface {}
class FooBaseClass {}
class BarDerivedClass : FooBaseClass {}
void main() {
FooInterface a = new BarImplementsInterface();
FooBaseClass b = new BarDerivedClass();
writefln("a class: %s", a.classinfo.name);
writefln("b class: %s", b.classinfo.name);
}
Output:
a class: test.FooInterface
b class: test.BarDerivedClass
I expected "a class: test.BarImplementsInterface" as the result
output.. Am I expecting the wrong behavior? Is there a preferred
way to do this?