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

Reply via email to