- x 0x004b71e0 {Interface for main.I} {m_init={length=0
ptr=0x}, name="main.I", vtbl={length=0 ptr=0x},
...} object.TypeInfo_Class {TypeInfo_Class}
[TypeInfo_Class]D0006: Error: Type resolve failed
m_init {length=0 ptr=0x} byte[]
+ name"main.I" string
vtbl{length=0 ptr=0x} void*[]
interfaces {length=0 ptr=0x}
object.Interface[]
base0x object.TypeInfo_Class
destructor 0x void*
classInvariant 0x void function(object.Object)*
m_flags 36 uint
deallocator 0x void*
m_offTi {length=0 ptr=0x} object.OffsetTypeInfo[]
defaultConstructor 0x void
function(object.Object)*
m_RTInfo0x const(void)*
- i 0x004b71e0 {Interface for main.I} {m_init={length=0
ptr=0x}, name="main.I", vtbl={length=0 ptr=0x},
...} object.TypeInfo_Class {TypeInfo_Class}
[TypeInfo_Class]D0006: Error: Type resolve failed
m_init {length=0 ptr=0x} byte[]
+ name"main.I" string
vtbl{length=0 ptr=0x} void*[]
interfaces {length=0 ptr=0x}
object.Interface[]
base0x object.TypeInfo_Class
destructor 0x void*
classInvariant 0x void function(object.Object)*
m_flags 36 uint
deallocator 0x void*
m_offTi {length=0 ptr=0x} object.OffsetTypeInfo[]
defaultConstructor 0x void
function(object.Object)*
m_RTInfo0x const(void)*
- c 0x004b71e0 {Interface for main.I} {m_init={length=0
ptr=0x}, name="main.I", vtbl={length=0 ptr=0x},
...} object.TypeInfo_Class {TypeInfo_Class}
[TypeInfo_Class]D0006: Error: Type resolve failed
m_init {length=0 ptr=0x} byte[]
+ name"main.I" string
vtbl{length=0 ptr=0x} void*[]
interfaces {length=0 ptr=0x}
object.Interface[]
base0x object.TypeInfo_Class
destructor 0x void*
classInvariant 0x void function(object.Object)*
m_flags 36 uint
deallocator 0x void*
m_offTi {length=0 ptr=0x} object.OffsetTypeInfo[]
defaultConstructor 0x void
function(object.Object)*
m_RTInfo0x const(void)*
Simply for the code
auto info(T)(T o)
{
auto x = typeid(o);
auto i = x.typeinfo;
auto c = o.classinfo;
return;
}
info exists in it's own module called from the main module.
interface I
{
void foo();
}
abstract class A : I
{
}
class C : A
{
void foo()
{
writeln("x");
}
}
class D : C { }
and
I i = new D();
info(i);
(more or less)