Thread overview
@property with 2 arguments
Oct 01, 2017
Tony
Oct 01, 2017
Jonathan M Davis
Oct 01, 2017
Tony
Oct 01, 2017
bitwise
Oct 01, 2017
Tony
October 01, 2017
"@property functions can only have zero, one or two parameters"

I am looking for an example of an @property function defined with two parameters and the syntax for how it is accessed without ().
October 01, 2017
On Sunday, October 01, 2017 05:57:53 Tony via Digitalmars-d-learn wrote:
> "@property functions can only have zero, one or two parameters"
>
> I am looking for an example of an @property function defined with two parameters and the syntax for how it is accessed without ().

If it has two parameters, then it's a free function that can be used as a setter. e.g.

@property void foo(ref T t, int i)
{
    ...
}

myT.foo = 42;

- Jonathan M Davis

October 01, 2017
On Sunday, 1 October 2017 at 05:57:53 UTC, Tony wrote:
> "@property functions can only have zero, one or two parameters"
>
> I am looking for an example of an @property function defined with two parameters and the syntax for how it is accessed without ().

And also this, which probably shouldn't actually work:

struct S {
    @property void prop(int a, int b){}
}

int main(string[] argv)
{
    S s;
    s.prop = AliasSeq!(1, 2);
    return 0;
}

October 01, 2017
On Sunday, 1 October 2017 at 06:34:56 UTC, Jonathan M Davis wrote:
> On Sunday, October 01, 2017 05:57:53 Tony via Digitalmars-d-learn wrote:
>> "@property functions can only have zero, one or two parameters"
>>
>> I am looking for an example of an @property function defined with two parameters and the syntax for how it is accessed without ().
>
> If it has two parameters, then it's a free function that can be used as a setter. e.g.
>
> @property void foo(ref T t, int i)
> {
>     ...
> }
>
> myT.foo = 42;
>
> - Jonathan M Davis

Thanks!

October 01, 2017
On Sunday, 1 October 2017 at 07:11:14 UTC, bitwise wrote:
> On Sunday, 1 October 2017 at 05:57:53 UTC, Tony wrote:
>> "@property functions can only have zero, one or two parameters"
>>
>> I am looking for an example of an @property function defined with two parameters and the syntax for how it is accessed without ().
>
> And also this, which probably shouldn't actually work:
>
> struct S {
>     @property void prop(int a, int b){}
> }
>
> int main(string[] argv)
> {
>     S s;
>     s.prop = AliasSeq!(1, 2);
>     return 0;
> }

Thanks! I was thinking it was something that looked like that, although the limitation to two items was puzzling.