Browse Source

* Add function reference version of TComparer.Construct

Michaël Van Canneyt 1 year ago
parent
commit
dfa22fb53a
1 changed files with 6 additions and 0 deletions
  1. 6 0
      packages/rtl-generics/src/generics.defaults.pas

+ 6 - 0
packages/rtl-generics/src/generics.defaults.pas

@@ -64,6 +64,7 @@ type
 
 
     class function Construct(const AComparison: TOnComparison<T>): IComparer<T>; overload;
     class function Construct(const AComparison: TOnComparison<T>): IComparer<T>; overload;
     class function Construct(const AComparison: TComparisonFunc<T>): IComparer<T>; overload;
     class function Construct(const AComparison: TComparisonFunc<T>): IComparer<T>; overload;
+    class function Construct(const AComparison: TComparison<T>): IComparer<T>; overload;
   end;
   end;
 
 
   TDelegatedComparerEvents<T> = class(TComparer<T>)
   TDelegatedComparerEvents<T> = class(TComparer<T>)
@@ -1105,6 +1106,11 @@ begin
   Result := TDelegatedComparerEvents<T>.Create(AComparison);
   Result := TDelegatedComparerEvents<T>.Create(AComparison);
 end;
 end;
 
 
+class function TComparer<T>.Construct(const AComparison: TComparison<T>): IComparer<T>;
+begin
+  Result := TDelegatedComparer<T>.Create(AComparison);
+end;
+
 class function TComparer<T>.Construct(const AComparison: TComparisonFunc<T>): IComparer<T>;
 class function TComparer<T>.Construct(const AComparison: TComparisonFunc<T>): IComparer<T>;
 begin
 begin
   Result := TDelegatedComparerFunc<T>.Create(AComparison);
   Result := TDelegatedComparerFunc<T>.Create(AComparison);