[fpc-pascal] FPC's generics

Bisma Jayadi bisma at brawijaya.ac.id
Wed Jun 13 13:53:12 CEST 2007


> 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




More information about the fpc-pascal mailing list