[fpc-pascal] Ordinal casting to enums
Hairy Pixels
genericptr at gmail.com
Thu Jun 6 11:00:50 CEST 2024
oh, it's writeln which is doing the runtime check, thanks. Doing math on enums is probably not a smart idea though. I wonder why a subscript like [] was never added to enums. It would be nice to do:
f := Fruit[banana.index + 1];
instead of dealing with raw values. A runtime check for creating enums was ordinals would be smart also, like:
f := Fruit.Create(10);
instead of blindly cast ordinals to enums which may be invalid.
> On Jun 6, 2024, at 2:33 PM, Ondrej Pokorny <lazarus at kluug.net> wrote:
>
> To find out, compile FPC with debug info and step into the writeln() call with F7 (multiple times until you get into fpc_shortstr_enum_intern()):
>
> #0 FPC_SHORTSTR_ENUM_INTERN(4284424, 4284488, POINTER(nil), POINTER($00326000), , 12) at sstrings.inc:575
> #1 fpc_write_text_enum(POINTER($00416008), POINTER($00416048), 0, TEXT (), 12) at text.inc:1272
> #2 main at project1.lpr:16
Regards,
Ryan Joseph
More information about the fpc-pascal
mailing list