> On Jul 8, 2019, at 11:07 AM, Sven Barth via fpc-devel 
> <fpc-devel@lists.freepascal.org> wrote:
> 
> As Pascal does not allow differentiating between result types this indeed 
> needs to be/stay forbidden. 
> 

There actually is a need to distinguish between getters/setters but the way 
property syntax works we’re forced for the return type to be the same as the 
input for the setter. This is a problem I faced before where I want the getter 
to return a pointer but I want the setter to take a direct value.

It could be solved by overloading but the syntax for the setter doesn’t make as 
much sense.

type
  generic TList<T> = class
    public type
      TReference = ^T;
    private
     function GetValue(index: integer): TReference;
     property Values[index: integer]: TReference read GetValue; default;

     procedure SetValue(index: integer; value: T); 
     property Values[index: integer]: T write SetValue; default;
  end;


Regards,
        Ryan Joseph

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to