Is there a performance difference between using bitmask values and sets?
For example:
Option #1:
=================================
const
FLAG_A = 1; // 1 shl 0
FLAG_B = 2; // 1 shl 1
FLAG_C = 4; // 1 shl 2
var
Flags: Integer;[..]
Flags:= FLAG_A or FLAG_C;
if FLAG_A and Flags 0 then .. // check FLAG_A is set in flags variable=================================
vs
Option #2:
=================================
type
TFlag = (FLAG_A, FLAG_B, FLAG_C);
TFlags = set of TFlag;
var
Flags: TFlags;[..]
Flags:= [FLAG_A, FLAG_C];
if FLAG_A in Flags then .. // check FLAG_A is set in flags variable=================================
While we are on the topic of Sets. What is the maximum number of values you may have in a set, and does it differ between 32-bit and 64-bit platforms?
Regards,
- Graeme -
