[fpc-pascal] Scoped enums and inferred types
Martok
listbox at martoks-place.de
Wed Feb 21 10:37:21 CET 2018
> I doubt that many would be using scopedenums for that.
Isn't that what they're for?
{$SCOPEDENUMS ON}
type
TTileSortingFlag = (Static,
Ramp,
Ignore,
Particle,
Floor,
Flat,
Container,
OnRamp,
BufferStatic,
BufferDynamic
);
As a side note, Ryan: if you need to interoperate with other languages, using
enums is dangerous. FPC has different enum storage semantics from most other
compilers, and will happily drop you into "undefined" behaviour.
Example from C# syntax:
enum Day : byte {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
is _not_ translated as
{$PACKENUM 1}
Day = (Sat=1, Sun, Mon, Tue, Wed, Thu, Fri);
Instead, write
{$PACKENUM 1}
Day = (_low=low(Byte), Sat=1, Sun, Mon, Tue, Wed, Thu, Fri, _hi=high(Byte));
Regards,
Martok
More information about the fpc-pascal
mailing list