This produces compatible strings between symbol and runtime type:
```d
class Foo {}
void main() {
        alias Foo F;
        writeln(fullyQualifiedName!F);
        auto f = new F;
        writeln(typeid(f).name);
}
```
```
test.Foo
test.Foo
```

But if the class is a template, the strings different:
```d
class Foo(bool b) {}
void main() {
        alias Foo!true F;
        writeln(fullyQualifiedName!F);
        auto f = new F;
        writeln(typeid(f).name);
}
```
```
test.Foo!(true)
test.Foo!true.Foo
```

Given a runtime typeid, how can I get the equivalent fullyQualifiedName without attempting to mangle the string myself manually? e.g. something I can pass to `Object.factory`.

Reply via email to