Micha Nelissen wrote:

Marc Weustink wrote:

BTW,
what woud be the problem with

type
  TMySpecificClass = TGenericClass(TObject, Integer);


Or:

<code>
type
  TGenericCollection = generic(T: TCollectionItem) class(TComponent)
  ...implement TCollection and use T
  end;

  TCollection = TGenericCollection of (TCollectionItem);
  TFieldDefs = TGenericCollection of (TFieldDef);
</code>

And:

<code>
type
  TGenericList = generic(T: PtrInt) class(TObject)
  ...implement TList and use PtrInt size for code generation
  end;

  TList = TGenericList of (Pointer);
</code>

Combining some of the wiki ideas, and has no "evil" <> characters :-). Probably TFieldDefs adds functionality to TCollection, but it was first example I came up with.

Implementation of TGenericCollection can be compiled as if (T: TCollectionItem) were used.

Would this solve the circular dependency ? It seems so to me, because one knows at least as much as in current implementation of these classes, but I'm no compiler engineer.

Micha

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

Are the () required? Why not TSomeList = TGenericList of Pointer; ?

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

Reply via email to