It is not possible to extend an enumeration type.  If you are not
willing to use separate sets to hold common and extended elements, you
can use a generic (not parametric) set type, say SET OF 0..31, that
can hold all possible elements, and define the possible elements as
constants.

On Fri, Dec 28, 2012 at 6:42 PM, Mark Morgan Lloyd
<markmll.fpc-pas...@telemetry.co.uk> wrote:
> Is it possible to extend an enumeration, while preserving strong type
> checking? In other words, given existing code like
>
> type    TUpstreamServerCapabilitiesBase= (uscConnected, uscCanIssueGUID);
>         TLocalServerCapabilitiesBase= (lscConnected, lscCanIssueGUID,
> lscIsFirebird);
>
>         TUpstreamServerCapabilities= set of TUpstreamServerCapabilitiesBase;
>         TLocalServerCapabilities= set of TLocalServerCapabilitiesBase;
>
> can the common parts of those enumerations- whether a connection was
> initially established and so on- be moved into a common declaration,
> preferably using "classical" Pascal so that I can store capabilities as a
> set?
>
> --
> Mark Morgan Lloyd
> markMLl .AT. telemetry.co .DOT. uk
>
> [Opinions above are the author's, not those of his employers or colleagues]
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal



-- 
Best regards,
JC Chu
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to