[fpc-pascal] How does TFPGMap key compare work?
Ryan Joseph
genericptr at gmail.com
Wed Apr 21 00:09:14 CEST 2021
> On Apr 20, 2021, at 3:10 PM, Sven Barth <pascaldragon at googlemail.com> wrote:
>
> If you look at TFPSMap' code you'll see that BinaryCompareKey and BinaryCompareData are only used in the way of method pointers OnKeyPtrCompare and OnDataPtrCompare. In TFPGMap<,> these are then set to compare methods specific to the specialization, most importantly TFPGMap<,>.KeyCompare if no custom compare function is set.
There's no many levels of indirection here I got confused. I see this method below and so maybe the <> operators are overloaded for short strings?
function TFPGMap.KeyCompare(Key1, Key2: Pointer): Integer;
begin
if PKey(Key1)^ < PKey(Key2)^ then
Result := -1
else if PKey(Key1)^ > PKey(Key2)^ then
Result := 1
else
Result := 0;
end;
Regards,
Ryan Joseph
More information about the fpc-pascal
mailing list