return in void functions

grauzone none at example.net
Wed Mar 4 23:40:34 PST 2009


Daniel Keep wrote:
> 
> BCS wrote:
>> Reply to bearophile,
>>
>>
>>> But this compiles with no errors:
>>>
>>> void foo() {
>>> return 1;
>>> }
>>> void main() {
>>> foo();
>>> }
>> IIRC D allows "return exp;" in a void function because it avoids special
>> cases in template code.
>>
>> ReturnTypeOf!(AFn, T) fn(T)(T t)
>> {
>>    return AFn(t,t); // AFn might return void
>> }
> 
> Sadly, this doesn't help if you need to cache the result before exiting.
>  I personally wish we could create void *variables*.

I wonder if we'd lose anything if the void datatype was completely 
removed and replaced by a "struct void {}" declaration in object.d?

>   -- Daniel



More information about the Digitalmars-d mailing list