Hi,
I'm a fpc newbie and currently playing around with generic classes. Consider the following code:
===== test.pas =====
{$mode objfpc}
program Test;
type
generic TGen<_T> = class
public
type
TInner = class
procedure Func;
end;
end;
TInst = specialize TGen<Integer>;
procedure TGen.TInner.Func;
begin
end;
begin
end.
====================When I compile this program with fpc 2.6.0 I get the following error:
% fpc test.pas
Free Pascal Compiler version 2.6.0 [2011/12/23] for i386 Copyright (c) 1993-2011 by Florian Klaempfl and others Target OS: Linux for i386
Compiling test.pas
test.pas(8,20) Error: Forward declaration not solved "TGen$LongInt.TInner.Func;" test.pas(20) Fatal: There were 1 errors compiling module, stopping Fatal: Compilation aborted
It seems as if the line TInst = specialize TGen<Integer> is not sufficient to specialize the inner class TInner of TGen<Integer>. What do I have to do to get a correct specialization of the inner class?
Thanks in advance and sorry if this is a stupid question.
Frank
