On Sunday, 24 August 2025 at 03:13:38 UTC, David T. Oxygen wrote:
Hello every kind and helpful D programmers, I need your help.
I've met two problems about getting types.
In D, we can use many keywords to get the type of an object,
such as `typeof`,`typeid`,`is`.
However, I don't know the differences between them well. I also
don't know how to use them in D...
`typeof` is evaluated at compile time and gives the type of an
expression or symbol as seen by the compiler.
`typeid` is evaluated at runtime and gives the [`TypeInfo`][1]
object containing information about an object's runtime type.
[1]: https://dlang.org/library/object/type_info.html
The difference between `typeof` and `typeid` can be seen in the
following program:
class Example {}
void main()
{
auto object = new Example;
check(object);
}
void check(Object o)
{
import std.stdio;
writeln(typeof(o).stringof); // Object
writeln(typeid(o).toString); // Example
}