Property discussion wrap-up

deadalnix deadalnix at gmail.com
Sun Jan 27 18:16:51 PST 2013


On Monday, 28 January 2013 at 00:07:05 UTC, Andrei Alexandrescu 
wrote:
> On 1/27/13 3:22 PM, Zach the Mystic wrote:
>> Several suggestions here:
>>
>> With regard to optional parentheses, it had been suggested 
>> that any
>> ambiguity be regarded as an error. This is the example I used:
>>
>> int foo() { return 4; }
>> auto x = foo; // Error: gives 4 or gives function foo?
>>
>> I suggested the ambiguity be resolved thus:
>>
>> auto x = foo(); // parens to get the return value
>> auto y = cast(function) foo; // cast(function) gives the 
>> function
>
> I was thinking of just using &foo, like in C.
>

The &foo syntax is really not a good one.

First, it is ambiguous with function that return a reference. 
Secondly, it create a different behavior for variables and source 
code defined functions.

This is one of those cases where the omition of () cascade in 
more mess.

At the end, ask any dev and he/she will say you that foo is a 
function. Why not make foo a function ?



More information about the Digitalmars-d mailing list