After you define the generic you must first create a type for it:

type
TMyMcollection = specialize TMCollection<String>;

And use the TMyMcollection.
It seems like hard work, but it is much better then the way it look on
a bad C++ and Java code :)

Ido

On Mon, Mar 31, 2008 at 4:00 PM, Damien Gerard <[EMAIL PROTECTED]> wrote:
>
>  I would like to make a generic class, like this :
>
>  {$mode objfpc}
>
>  generic TMCollection<_T> = 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 ?
>  Thanks !
>
>
>
>  --
>  Damien Gerard
>  [EMAIL PROTECTED]
>
>  "Intelligence is 10 million rules."
>     -- Douglas Lenat
>
>
>
>
>
>  _______________________________________________
>  fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
>  http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>



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

Reply via email to