On Saturday, 3 January 2015 at 14:28:07 UTC, Ondra wrote:
class C(T): B {} // missing in ModuleInfo

The reason is that's technically not a class and doesn't exist at runtime, it is just a template for one (you can't new that, you'd have to new C!some_actual_type). If you were to add a

class D : C!int {}

then you'd see class D shows up and has a parent of C!int... however, you're right, C!int doesn't want to show up at all, even if I instantiate it.

I'm not sure if there's a way around that other than to add some code in the class to register itself. You could use a static constructor that adds itself to a list.

Or, to give each class a shared ID, you could add a static member which returns some variation of its typeinfo. In fact, typeid(any_class) returns a unique identifier for each class (an instance of TypeInfo), maybe you can use it directly.

Reply via email to