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 mailing list