[fpc-pascal] Is there a way to create a generic pointer to a generic record

Sven Barth pascaldragon at googlemail.com
Sun Nov 20 12:03:40 CET 2016

Am 20.11.2016 08:31 schrieb "Le Duc Hieu" <alaviss0 at gmail.com>:
> Here is the complete snippet that i wanted to create
> Type
>   generic PGList<T> = ^specialize TGList<T>;
>   generic TGList<T> = record
>     data: T;
>     next: specialize PGList<T>
>   end;

You'll need to use nested types (they require modeswitch advancedrecords),
like this:

=== code begin ===

  generic TGList<T> = record
  public type
    TSelf = specialize TGList<T>;
    PGList = ^TSelf;
    data: T;
    next: PGList;

=== code end ===

Note: the TSelf construct is currently needed due to a bug in the compiler.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20161120/b1eba8af/attachment.html>

More information about the fpc-pascal mailing list