Proposal: "void f() { return 7; }" should be illegal
Ary Borenszweig
ary at esperanto.org.ar
Tue Sep 29 07:05:39 PDT 2009
Jason House wrote:
> bearophile Wrote:
>
>> Don:
>>
>>> In the docs for "return statement" in statement.html it says:
>>> ---
>>> ReturnStatement:
>>> return;
>>> return Expression ;
>>>
>>> Expression is allowed even if the function specifies a void return type.
>>> The Expression will be evaluated, but nothing will be returned.
>> I agree that making the language a little more strict in such regards is better.
>>
>>
>>> This makes sense for things we definitely want to allow, such as:
>>> void foo() { return bar(); }
>>> where bar() is another void function.
>> If bar() is a void function then "return bar();" looks like a bug. Why do you want to allow such semantically wrong situation?
>>
>> Bye,
>> bearophile
>
> I believe the argument is to allow templated code to gracefully handle a void return type without special cases.
Well maybe the change could be made only to functions that are not
templated.
More information about the Digitalmars-d
mailing list