We have a handy dandy syntax for this:

if (MyClassInt subclass = cast(MyClassInt)value) {
        writeln(subclass.value);
}

If it doesn't cast to said type (it will be null) that branch won't execute.

Just out of interest: it looks like a dynamic_cast in C++ which is considered as slow operation. Is that D cast also a dynamic cast and also slow? I've never used it, so I'm a bit curious.

Reply via email to