return in void functions

Daniel Keep daniel.keep.lists at gmail.com
Thu Mar 5 02:27:32 PST 2009



grauzone wrote:
> 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

T x = void;

Interesting idea, though.

  -- Daniel



More information about the Digitalmars-d mailing list