why is `typeid` only half baked?
Adam D. Ruppe via Digitalmars-d
digitalmars-d at puremagic.com
Fri Nov 6 09:03:36 PST 2015
On Friday, 6 November 2015 at 16:38:04 UTC, Or Dahan wrote:
> Any reasons why it inherently can't be improved to do so?
You know, I was about to say no because interfaces can be objects
from other languages... but the compiler is strict enough now
that it can statically determine if that might be the case.
If the interface derives from IUnknown, it might be a COM object
so it can't be sure it is a D class. Similarly if it derives from
extern(C++). In those cases, the cast to Object returns null, and
attempting to get typeid() off it is liable to outright crash.
But if it is a D interface... it should be ok doing an automatic
cast to Object and trying to get typeinfo there.
The only problem it might have is if the typeinfo is in a dll.
But I think that has been basically solved too.
More information about the Digitalmars-d