On 22 Dec 2010, at 14:15, Torsten Bonde Christiansen wrote:
Is it possible to create a constant of a set that is based on an
evaluation of other constants? (using fpc 2.4.2)
A basic case could look like this:
type
TMyType = (a, b, c ,d);
TMyTypes = set of TMyTypes;
const
SetX: TMyTypes = (a, b);
SetY: TMyTypes = (c, d);
These definitions should not compile, a set is defined as [a, b], not
(a, b).
SetCombined: TMyTypes = SetX + SetY; // this gives me an "Error:
Illegal expression"
I have been reading throught the FPC docs, but it is unclear whether
this is possible at all. The set operators allow this and according
to FPC doc section on constants some expression evaluation is
possible.
So-called "typed constants" are actually initialised variables (for
historical reasons). The compiler cannot evaluate expressions that
involve variables (initialised or not).
Change the constants into symbol constants if you want to use them in
constant expressions:
const
SetX = [a, b];
SetY = [c, d];
SetCombined = SetX + SetY;
Jonas
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal