On Sunday, 3 February 2013 at 08:16:08 UTC, Andrei Alexandrescu
wrote:
In brief:
* Optional parens stay.
This syntax sugar only helps in chained-UFCS calling. Why
allowing it everywhere, that is even if the function's name is
not followed by a dot?
like this: Obj1.action1.action2.action3(); It is clearer than
Obj1.action1().action2().action3(); and, still, does not allow
something like Obj1.action1; requiring an Obj1.action1(); instead.
* Just mentioning a function or method without parens does NOT
automatically take its address. (This is a change from the
current behavior.)
If you stick to the above "optional only if followed by a
dot"-paradigm, you could maintain the behavior, except in that
UFCS-chains, where it doesn't matter anyway what mentioning a
function or method without parens returns, since one assumes
invocation in this kind of chains.
* Read properties (using @property) work as expected with the
mention that they may NOT be called with the parens. Any parens
would apply to the returned value.
And if the returned value is a parameterless function, shouldn't
that be callable without parens?
* Write properties (using @property) may only be used in the
assignment form (no function-style call allowed).