On Friday, 25 January 2013 at 09:12:47 UTC, Jacob Carlborg wrote:
On 2013-01-24 17:29, Andrei Alexandrescu wrote:
That means there must be two overloads of f exactly:
T f();
f(T);
That's somewhat problematic since it won't allow chaining
assignments:
auto i = f = 3;
We need to either allow:
T f ();
T f (T);
Or implement some form of rewrite:
f = 3; // calls setter
auto i = f; // calls getter
This is the preferred solution.
Assignation is right associative, so it is equivalent to :
auto i = (f = 3);
The setter is called.