TypeInfo_Class confusion

user1234 user1234 at 12.de
Sun Aug 10 09:58:50 UTC 2025


On Saturday, 9 August 2025 at 11:13:42 UTC, Brother Bill wrote:
> On page 344 of "Programming in D", we have this snippet:
> [...]
> I was expecting something more concrete than TypeInfo_Class or 
> object.TypeInfo, such as "Violin" or "StringInstrument".
>
> Am I missing something or have I made a mistake?
>
> source/app.d
> ```
> import std.stdio;
>
> void main() {
>     TypeInfo v = typeid(foo(1));
>     TypeInfo g = typeid(foo(2));
>
>     assert(v != g); // ← the two types are not the same
>
>     writeln(v);
>     writeln(g);
>     writeln;
>
>     TypeInfo_Class v2 = typeid(foo(1));
>     string className = v2.classinfo.name;
>     string baseName = v2.classinfo.base.name;


Change the last lines to

```d
string className = v2.name;
string baseName = v2.base.name;
```

otherwise you operates on the TypeInfo_Class of the Type_Info 
class **itself**.


More information about the Digitalmars-d-learn mailing list