[fpc-devel] Generics, TObject Descendant?
    Sven Barth 
    pascaldragon at googlemail.com
       
    Thu Feb 19 07:22:17 CET 2015
    
    
  
On 18.02.2015 20:51, Den wrote:
> Hi there,
>
> Currently this code:
>
>    TSomeObject<T> = Class;
>    TSomeOtherObject<T : TObject> = Class(TSomeObject<T> );
>
> And finally:
>
>    TMyObject = Class;
>    TSomeOtherOtherObject<T : TMyObject> = Class(TSomeOtherObject<T> );
>
> Comes up with error 'got "T" expected "TObject"' .. But TMyObject is
> based off of TObject?
At seems that there are still problems if TMyObject is merely a forward 
declaration... the following works:
=== code begin ===
type
   TSomeObject<T> = Class
   end;
   TSomeOtherObject<T : TObject> = Class(TSomeObject<T> );
   TMyObject = Class
   end;
   TSomeOtherOtherObject<T : TMyObject> = Class(TSomeOtherObject<T> );
=== code end ===
Note 1: this is a forward declaration "XYZ = class;", this is not: "XYZ 
= class(TObject);"
Note2 : a generic /must not/ be a forward declaration (in this case 
TSomeObject<T>).
A forward declaration of TMyObject should be valid in this case however, 
so please report a bug with an example program attached.
Regards,
Sven
    
    
More information about the fpc-devel
mailing list