Kagamin wrote:
Kagamin Wrote:
Andrei Alexandrescu Wrote:
b.a = A.init;
The problem here is not in passing temporaries as this, the problem is that
property assignment is ambiguous with opAssign called on the property's return
value. Your proposed solution seems unrelated to the problem.
I think, possible solution is to disallow assign operations on the return
value: =, +=, *=, ~=, ++ etc, but read operations should be allowed and
functions should be callable by their symbolical names.
Won't help. Consider:
a.b.c.d.e.f = g;
If anywhere on the path an rvalue is created, the code is useless busywork.
Andrei