Hello listers,

Using Freepascal 2.6.4, I have a problem about generics. In short, I
can't specialize a class with a subtype of a type declared with
"public type". Let me try to explain.

In dopf.pas, I have:

type
generic TdGOpf<T1, T2, T3> = class(TdComponent)
public type
TEntities = specialize TFPGObjectList<T3>
end;;

If personmapper is a class specialized from TdGOpf, an instance can be
created as follows:

Personmapper := TPersonMapper.TEntities.create;

Yes, this code is successul. But this code is not:

type
generic TGAction <t1, t2> = class(specialize TBrookGAction <t1>);
private
Fentities: t2.TEntities; //Error in type definition
end;

This code failed, so I tried:

type
generic TGAction <t1, t2> = class(specialize TBrookGAction <t1>);
public type TCEntities = t2.Tentities; //Error in type definition
end;

I got also an error if I try:

type
generic TGAction <t1, t2, t2.TEntities> = class(specialize TBrookGAction <t1>);

Well, I think the problem is illustrated. The doubt is how can create
an instance of a public type, in my case, t2.Tentities inside my
specialized class?

Best regards,


-- 
Luciano de Souza
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to