Feature request: one-statement functions without brackets

Downs default_357-line at yahoo.de
Mon Apr 2 03:44:27 PDT 2007


Frits van Bommel wrote:
> Downs wrote:
>> Feature request: Allow functions of the form function-declaration 
>> statement;
>> Example: int test() return 5;
>>
>> This would make the function syntax closer to the way if/else, while, 
>> for and similar
>> statements' blocks are handled now, potentially making parsing easier. 
>> It would
>> also help with internal consistency.
>> Also, it would allow methods like void test() synchronized(this) { }, 
>> which to me just
>> looks cleaner than using brackets to contain a single statement.
>> I couldn't immediately imagine a case where this syntax might lead to 
>> an ambiguity; if
>> there is, I'm sorry.
>>
>>  -- awaiting feedback, downs
> 
> Ambiguity:
> ---
> void foo()(T);
> ---
> No-implementation declaration of a no-template-argument template 
> function that takes a T, or no-argument function that evaluates "T"?
> 
> Of course, the practical use of a no-implementation template function 
> declaration may be limited enough (is there any at all?) that banning it 
> may not be much of a problem...
Forgive my ignorance, but I don't get what you mean by "no-argument function
that evaluates T." Wouldn't that be foo()(T)? (without the void)
  -- slightly confused, downs



More information about the Digitalmars-d mailing list