2010/12/19 David Emerson <dle...@angelbase.com>: > type > generic gt_box<_t_point,_num> = class (_t_point) // FAILS :-( > f_width, f_height : _num; > end;
I think it should fail according to the docs, see: http://www.freepascal.org/docs-html/ref/refse42.html "There is a single placeholder _T. It will be substituted by a type identifier when the generic class is specialized. The identifier _T *may not be used for anything else than a placehoder*. " The bold part is IMO violated by the declaration. Anyway, it could be perhaps (not tested) written as: type TBoxProxy = class(_t_point); generic gt_box<_t_point, _num> = class(TBoxProxy) f_width, f_height : _num; end; Another strange point is, that the declaration of gt_box doesn't use the formal specialization paramater `_t_point` at all (in the posted code), so the same the other way around should also work: type generic gt_box<_num> = class<_t_point> f_width, f_height : _num; end; A 3rd note is that your code can't compile as _t_point is not declared when gt_box is declared, but the declaration wants to inherit from _t_point, so IMO also for this the code is rightfully rejected the compiler. HTH -- bflm freepascal-bits.blogspot.com _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal