Am Wed, 8 Feb 2012 11:20:39 -0800
schrieb "H. S. Teoh" <[email protected]>:

> What's the correct syntax for checking the runtime type of a derived
> object given its base class pointer? I tried:
> 
>       Base f() { return new Derived(); }
>       Base b = f();
>       assert(is(typeof(b)==Derived));
> 
> but it throws an error. Apparently typeof(b)==Base; so typeof returns
> only compile-time information? How do I get at the runtime type?
> 
> 
> T
> 

I think using casts is the only way:

Base f() { return new Derived(); }
Base b = f();
auto c = cast(Derived)b;
assert(c !is null);

Reply via email to