[fpc-pascal] How to instantiate a public type in a generic class
luciano de souza
luchyanus at gmail.com
Sun May 17 20:46:07 CEST 2015
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
More information about the fpc-pascal
mailing list