Wie macht man es bei einem 'Set Of TFoobar'? Klappt das dann?
Ich würde, weil ich selten mit Mengen arbeite, mir den 5-Zeiler von Dax an die jeweilige Menge anpassen und als Template ablegen.
Delphi-Quellcode:
Function SetOf|Type|Length (aSet : T|Type|Set) : Byte;
Var
i : |Type|;
Begin
Result := 0;
For i:= Low (|Type|) To High (|Type|) Do
If i in aSet Then Inc (Result)
End;
Und '|Type|' wird im Template durch die Basistype der Menge (TFoobar, Byte etc.) ersetzt.
@3_of_8: Ich kenn mich mit Intel-Assembler gar nicht aus, aber stimmt es, das Du einfach so lange die bits zählst, bis das Byte leer ist?
Dann wird Deine Funktion bei einem TByteset mit den Elementen [255,0] nicht richtig funktionieren.