So gesehen ja, da keine Typeinschränkung herscht. Wenn man wollte könnte man den Template-Parameter (so heißt die Klasse intern auch) als Feld-Name misbrauchen:
Delphi-Quellcode:
generic
TTest<T> = record
T: Integer;
end;
type
TTestValue = specialize TTest<Value>;
var
t: TTestValue;
begin
t.Value := 10;
end;
Aber da ich mich hauptsächlich an die Syntax von FreePascal gehalten habe (bis auf den Macrocharakter den ich eingeführt habe) und der Tatsache, dass diese Generics keine anderen Generics instanzieren können, dachte ich mir, dass ich sie lieber Generics statt Templates nenne. Aber vielleicht kommen auch noch full-featured Templates. Wer weiß. Jetzt ist erstmal das case-string-of dran, das C# ja auch beherrscht.