On 29/06/2019 23:43, Sven Barth via fpc-devel wrote:
Am 28.06.2019 um 10:39 schrieb Martin Frb:
What does Delphi do with

    property Foo[AIndex: Integer; BIndex: Integer = 0]: Integer read GetFoo;
Because FPC rejects this one. (And IMHO rightfully so)

Hope this madness can be avoided in fpc....

The following also fails:
=== code begin ===

function GetFoo(AIndex: Integer; BIndex: Integer): Integer;
property Foo[AIndex: Integer; BIndex: Integer = 0]: Integer read GetFoo;
Good

However this works:
=== code begin ===

function GetFoo(AIndex: Integer; BIndex: Integer = 0): Integer;
property Foo[AIndex: Integer; BIndex: Integer = 0]: Integer read GetFoo;
Ouch
What then about
  function GetFoo(AIndex: Integer = 0): Integer;
  property Foo[AIndex: Integer = 0]: Integer read GetFoo;
And if it compiles, which of those can you call
  Obj.Foo
  Obj.Foo[]
And what if you make that default property....
  Obj[] // ????


As does this:
=== code begin ===

function GetFoo(AIndex: Integer; BIndex: Integer = 0): Integer;
property Foo[AIndex: Integer; BIndex: Integer]: Integer read GetFoo;
This is ok.

GetFoo can be called directly.
So long, as the property will fail, if called with only one index.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to