On 3/5/22 12:48, bauss wrote:
This is where compile-time has its limits compared to runtime type creation, because templates only live during compile-time then it isn't really that easy to do something like this, where it would be trivial in other languages like C#.
That's something I don't really get. I totally understand that you can't instantiate the template during runtime, but why can't already instantiated classes be registered just like non-templated ones?
I tried the following snippet, and couldn't find C!int.C anywhere, although it **must** be there: I can get the `TypeInfo_Class` object, so I can clearly create new instances at runtime:
```d import std.stdio : writeln; class C(T) {} class D {} void main() { auto c = new C!int(); auto c2 = typeid(c).create(); auto d = new D(); writeln(typeid(c).name); writeln(typeid(c2).name); writeln(typeid(d).name); writeln("----"); writeln; writeln; foreach (m; ModuleInfo) { if (m) { writeln(m.name); writeln("--------------------"); foreach (c; m.localClasses) { if (c) { writeln(c.name); } } writeln; } } } ```