On Saturday, 10 December 2022 at 11:13:57 UTC, Nick Treleaven
wrote:
It was bizarre and confusing that assignment syntax was
implemented for functions and methods not explicitly marked
with @property.
Hi Nick, do you think this is confusing?
```d
void main()
{
struct S
{
int value;
alias opCall this;
this(int i) {
value = i;
}
alias opAssign = opCall;
@property opCall(int x) {
return value = x;
}
@property opCall() inout {
return value;
}
@property opOpAssign(string op)(int x) {
mixin("return value"~op~"=x;");
}
}
S a = S(10),
b = S(-1);
import std.stdio;
writeln(a + b); // 9
writeln(++a + b); // 10
}
```
Actually, my question to everyone is, for example, is this kind
of wrapping confusing for you?
SDB@79