Zitat von
Christian Seehase:
hast Du Dir das hier schon einmal angesehen:
Klar. Ich habe da sogar was eigenes mal angefangen, dass mir aus
Delphi-Quellcode:
type
TTemplateList = class(TList){template<T>}
private
function GetItem(Index: Integer): T;
public
property Items[Index: Integer]: T read GetItem;
end;
TIntegerList = TTemplateList{template<Integer>};
folgendes macht/machen sollte:
Delphi-Quellcode:
type
// TTemplateList = class(TList){template<T>}
// private
// function GetItem(Index: Integer): T;
// public
// property Items[Index: Integer]: T read GetItem;
// end;
{$INCLUDE TTemplateList__Integer__.tpl}//TIntegerList = TTemplateList{template<Integer>};
Mit TTemplateList__Integer__.tpl:
Delphi-Quellcode:
// [der Delphi-Parser im Forum zieht die erste Zeile immer nach ganz links]
TTemplateList = class(TList){template<Integer>}
private
function GetItem(Index: Integer): Integer;
public
property Items[Index: Integer]: Integer read GetItem;
end;
Das Projekt hatte ich aber aus Zeitmangel recht schnell eingestampft. Übrig blieb der Delphi language Preprocessor (
dpp32), der nichts anderes macht als Makros per {$DEFINE Concat(x, y) x##y} einzuführen.