type
  TRegularIntegerArray: array[0..100] of integer;
  TGenericArray<T>: array[0..100] of T;

var
  IntegerArrayFromGeneric = specialize TGenericArray<integer>;

Yes, I know, the ':' and '=' usage is wrong, it's a mistypo. :-D

Anyway, using my suggested generic syntax(es), it's allowed to specialize a generic type in type section. Like below example:

> type
>   TRegularIntegerArray = array[0..100] of integer;
>   TGenericArray<T> = array[0..100] of T;
>   TIntegerArray = specialize TGenericArray<integer>;
>
> var
>   IntegerArray: TIntegerArray;

Or:

> type
>   TList = generic class(TObject)
>     type public
>        TCompareFunc = function(const Item1, Item2: T): Integer;
>     var public
>       data : T;
>     procedure Add(item: T);
>     procedure Sort(compare: TCompareFunc);
>   end of T;
>   TPointerList = specialize TList for Pointer;
>
> var
>   PointerList: TPointerList;

-Bee-

has Bee.ography at:
http://beeography.wordpress.com

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

Reply via email to