12.5. Dynamic RTTI type casts¶
The DYNAMIC_CAST_RTTI module implements runtime dynamic casting between class
types using RTTI information. It provides safe downcasting with null results
on type mismatch, similar to C++ dynamic_cast.
All functions and symbols are in “dynamic_cast_rtti” module, use require to get access to it.
require daslib/dynamic_cast_rtti
12.5.1. Variant macros¶
- ClassAsIs¶
Variant macro that implements class dynamic casting via is and as.
12.5.2. Dynamic casts¶
- dynamic_type_cast(instance: auto; otherclass: auto(TT)): TT?¶
Casts a class instance to the target type using RTTI, returns null if the cast fails.
- Arguments:
instance : auto
otherclass : auto(TT)
- force_dynamic_type_cast(instance: auto; otherclass: auto(TT)): TT?¶
Casts a class instance to the target type using RTTI, panics if the cast fails.
- Arguments:
instance : auto
otherclass : auto(TT)
- is_instance_of(instance: auto(TCLS)?; otherclass: auto(TT)): auto¶
Returns true if the class instance is an instance of the specified class using RTTI.
- Arguments:
instance : auto(TCLS)?
otherclass : auto(TT)