[fpc-pascal] Generics

Damien Gerard milipili at shikami.org
Mon Mar 31 18:29:27 CEST 2008


Le Mar 31, 2008 =E0 6:03 PM, Peter Vreman a =E9crit :
>>>>> I would like to make a generic class, like this :
>>>>>
>>>>> {$mode objfpc}
>>>>>
>>>>> generic TMCollection<_T> =3D class(TObject)
>>>>> private
>>>>>  FDefaultItem: _T;  // line 35
>>>>> public
>>>>>  constructor Create;
>>>>>  destructor Destroy;override;
>>>>>  [...]
>>>>> end;
>>>>>
>>>>>
>>>>> But I have got the following :
>>>>> commons.pas(35,21) Error: Identifier not found "_T"
>>>>> commons.pas(35,21) Error: Error in type definition
>>>>> commons.pas(39,34) Error: Identifier not found "_T"
>>>>> commons.pas(44,84) Error: Identifier not found "_T"
>>>>>
>>>>> According to the documentation, I should use `var private`, but I
>>>>> have got :
>>>>>
>>>>> Compiling ./commons.pas
>>>>> commons.pas(33,3) Error: VAR and TYPE are allowed only in generics
>>>>> commons.pas(35,21) Error: Identifier not found "_T"
>>>>>
>>>>> Could someone tell me where I am wrong ?
>
> The forward declaration of TMCollection makes it a normal class and  =

> not a generic class.
>

Oki I understand.
I tried to use an Interface but I had a nice Segementation fault :)

Should I report it as a bug in the mantis ?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: foo.pas
Type: application/octet-stream
Size: 4342 bytes
Desc: not available
Url : http://lists.freepascal.org/lists/fpc-pascal/attachments/20080331/706=
dd62e/foo.obj
-------------- next part --------------


--
Damien Gerard
milipili at shikami.org

"Intelligence is 10 million rules."
    -- Douglas Lenat







More information about the fpc-pascal mailing list