Here is a proposal of the syntax:

type
  TGenericClass<T,F> = class
  public
    procedure Add(Item: T; Flag: F);
  end;

procedure TGenericClass.Add(Item: T; Flag: F);
// Note: No redundant <T,F> after TGenericClass.
begin
end;


I think, the parameters should be at the identifier name, not in the class
block, because that's the way you use them:

type TListOfComponent = TGenericList<TComponent>;

Analog:
type TGenericListClass<T> = class of TGenericList<T>;
type PGenericRecord<T> = ^TGenericRecord<T>;

procedure GenericProc<T>(Param: T);
begin
end;


Mattias
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to