Delphi-Quellcode:
type
TDataList<TData> = record
private
FPos: NativeInt;
FLen: NativeInt;
FData: TArray<TData>;
FComp: IComparer<TData>;
public
procedure Push(const Data: TData);
end;
procedure TDataList<TData>.Push(const Data: TData);
begin
var i: NativeInt;
TArray.BinarySearch<TData>(FData, Data, i, FComp, FPos, FLen);
end;
Das ist der Auszug einer Typs.
Eigentlich müssten doch die Typen übereinstimmen, aber im 11.2 kommt immer nur
Zitat:
[dcc32 Fehler] E2250 Es gibt keine überladene Version von 'TArray.BinarySearch<Unitname.TDataList<TData>.TData>', die man mit diesen Argumenten aufrufen kann
Die letzten 3 Parameter kann man bestimmt ignorieren, denn auch durch ersetzen mit
nil, 0, 1
ändert sich nichts.
Sowie den ersten Array-Parameter kann ich durch
nil ersetzen und es kommt die gleiche Meldung.
Der Compiler landet auf der abschließenden
);
und ErrorInsight markiert vorne das
TData>
.
Also eigentlich müsste doch alles richtig sein, oder doch nicht?