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