Am 20.11.2012 05:12, schrieb Andrei Alexandrescu: > On 11/19/12 5:23 PM, Rob T wrote: >> I don't have an answer, but there may be more to the picture than we think. > > I agree. In particular I find it a specious argument to insist on religiously > associating "()" with > function calling and the lack thereof with variable access. I don't see > myself, when seeing an > expression like "generator(x, y, z).map!(x => x * x)()", going like "holy > cow, good I saw those > trailing parens, otherwise I would've sworn it was a variable". Trailing > parens in UFCS chains are > just warts, this is the reality. Let's deal with it. > > > Andrei
Isn't it more that they seem like warts whenever a parameterless (or pseudo-parameterless in the case of UFCS) template function is called, because template instantiations already look a lot like function calls? Anyway, my take on this is, while I find it a bit sad, that there is no visual distinction between variables and functions for various reasons, in the presence of properties this distinction has already gone long time ago. So realistically this argument has no weight anymore. Personally, I started to like a partially relaxed approach like the one Adam Ruppe describes a lot, so a DIP would definitely be a great step.
