Repository URL to install this package:
Version:
3.0.0 ▾
|
unit tw22540;
interface
{$ifdef FPC}
{$Mode Delphi}
{$endif}
{$pointermath on} // Be more objfpc like in overindexing and removing of ^.
{$inline on}
type
{$ifndef FPC} Ptrint=integer; {$endif}
TLightMap<tkey,tvalue> = class
Type
PKey = ^TKey;
PValue= ^TValue;
TKeyCompareFunc = function(const Key1, Key2: TKey): Integer; // returns Integer both in FPC and Delphi
TFinalizeKeyFunc = Procedure(var Key1:TKey) of object;
private
keycomparefunc:TKeyCompareFunc;
finalizekeyfunc:TFinalizeKeyFunc; // finalize keys. NIL if unused.
public
constructor Create; virtual;
end;
TLightStringMap<tvalue> = class(TLightMap<string,tvalue>)
constructor create; override;
procedure finalizestring(var s:string);
end;
TLightStringMapInteger = class(TLightStringMap<Integer>);
implementation
Uses Sysutils;
{ TLightMap<tkey, tvalue> }
constructor TLightMap<tkey, tvalue>.Create;
begin
end;
{ TLightStringMap<tvalue> }
constructor TLightStringMap<tvalue>.create;
begin
inherited;
keycomparefunc:=comparestr;
finalizekeyfunc:=finalizestring;
end;
procedure TLightStringMap<tvalue>.finalizestring(var s: string);
begin
finalize (s);
end;
end.