Ja, mit Variablen (festen Typen als Array) funktioniert es,
mein Problem bei dieser Variante liegt in der Nutzbarkeit.
Delphi-Quellcode:
if m96 in [m0, m128, m256, m512, m1024] then begin
// Nein
end else if m512 in [m0, m128, m256, m512, m1024] then begin
// Ja
end;
Leider wird hier ein SET generiert, es wird wegen der Grenzen gemeckert und der Operator mit dem ARRAY wird garnicht erst gesucht.
Man müsste das Array somit erstmal erzwingen.
Delphi-Quellcode:
if m96 in CreateArray([m0, m128, m256, m512, m1024]) then begin
// Nein
end else if m512 in CreateArray([m0, m128, m256, m512, m1024]) then begin
// Ja
end;
function CreateArray(const Values: array of Word): TArray<Word>;
Und das ist einfach nur umständlich.
Oder man baut eben die Contains-Funktion und verwendet kein IN, was aber auch unschön ist.