On Wednesday, 18 February 2026 at 14:55:50 UTC, Nick Treleaven wrote:
On Wednesday, 18 February 2026 at 14:49:56 UTC, Brother Bill wrote:
```Object foo``` is a class instance, perhaps null, perhaps a Clock or AlarmClock or Vegetable.

What is the expression to ask the boolean question:
Is foo of type Clock or a type derived from Clock, such as AlarmClock?

Use a cast:
https://dlang.org/spec/expression.html#cast_class

I tried the obvious ```foo is Clock```, but this did not compile.
```
Error: type `Object` is not an expression
       bool isClock = (o is Clock)
                            ^
```

That use of `is` is a different expression:
https://dlang.org/spec/expression.html#identity_expressions

That's it!
```
const(Clock) clock = cast(const Clock)o;
```

If clock is null, then o is either ```null``` or not derived from Clock. Otherwise o, such as AlarmClock will have access to only the Clock features of o.

Reply via email to