Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

Wie sollte eine Template-Syntax für Delphi aussehen?

  Alt 6. Jan 2006, 21:45
Da ich jetzt durch ein anderes Projekt in der Lage bin dem Delphi IDE Compiler andere Daten unterzujubeln kam mir mal wieder meine alte Idee (hatte die schon zu BorlandPascal 7 Zeiten), Templates zu implementieren. Jetzt stellt sich natürlich die Frage, wie diese syntaktisch eingebaut werden sollen.

Mal ein Beispiel, das mir noch nicht so ganz 100%-tig gefällt:

Delphi-Quellcode:
interface

(* Template deklarieren, dies wird hinter den Kolissen durch ein "{$INCLUDE ...}" ersetzt, in der alle Template-Instanzierungen deklariert werden. *)
template
  TMyTpl<T: type; StartCount: Integer = 10> = class(TObject)
  private
    FField: array of T;
  public
    constructor Create;
  end;

implementation

(*<<< wird durch {$INCLUDE ...} ersetzt, in der alle Template-Instanzierungen implementiert werden. *)
constructor TMyTpl.Create;
begin
  SetLength(FField, StartCount);
end;
{>>>}

{ Template instanzieren und als TIntList deklarieren }
instantiate TMyTpl<Integer, 10> as TIntList; { wird hinter den Kolissen zu "type TIntList = WasWeissIchMangledName;" }

procedure TForm1.FormCreate(...);
var
  MyList: TIntList;
begin
  MyList := TIntList.Create;
  ...
  MyList.Free;
end;
Vielleicht nenne ich das ganze auch statt "template" einfach "generic", denn so mächtig wie die C++ Templates wird das sicherlich nicht.


Ich warte auf eure syntax und andere Vorschläge/Kritiken.
  Mit Zitat antworten Zitat