On Monday, 4 February 2013 at 02:18:08 UTC, David Nadlinger wrote:
On Monday, 4 February 2013 at 01:30:49 UTC, Andrei Alexandrescu wrote:
I think most, if not all, detailed rules derive from these.

One does not, the strange special case for taking the address of a property.

I'd REALLY urge you to explore alternative solutions, such as the one proposed by Andrej, before introducing an abomination like distinguishing between "&a" and "&(a)".

There is no way such strange behavior could be explained in a way that is coherent with the rest of the language.

I found that when you are working on a complex problem and have a solution that seems to work for everything except a little detail, the best approach often is to step back a bit and have an entirely fresh look at that area again, but now taking the rest of your design as a given.


The problem we are dealing with here isn't complex. It is made complex artificially.

We are trying to make @properties behave like fields, but hey in this case I want it to behave like a function . . . oh yeah so in this special case, I have to workaround, ho and here and here as well, oh damn, that is complicated.

Same goes when conflating the function with it's return value (which optional () is about).

Introducing a rule by which parenthesizing an expression in a way that does not change precedence suddenly causes a difference in behavior certainly wouldn't be among the first ideas coming to my mind this way.


By trying to make things easy, we miss that the important point is to make them simple.

Reply via email to