Sample code:

class C{}
struct S{}

void main(){
    import std.stdio;
    auto c = new shared C();
    auto s = new shared S();
    writeln(typeid(c)); //modulename.C
    writeln(typeid(s)); //shared(modulename.S)*
    writeln(typeid(c).next); //null
    writeln(typeid(s).next); //shared(modulename.S)
writeln(typeid(typeid(s).next) is typeid(TypeInfo_Shared)); //true
    writeln(typeid(typeid(c)) is typeid(TypeInfo_Shared)); //false
}


What's the reason that the shared propagates to the typeinfo for the struct, but not for the class declaration?

Reply via email to