Ouch: return values as lvalue

Andrei Alexandrescu (See Website For Email) SeeWebsiteForEmail at erdani.org
Tue Jan 30 20:37:04 PST 2007


Joel C. Salomon wrote:
> Andrei Alexandrescu (See Website For Email) wrote:
>> Joel C. Salomon wrote:
>>> Andrei Alexandrescu (See Website For Email) wrote:
>>>> It's a long discussion. I agree that non-templated code without 
>>>> effect should issue a compile-time error (not warning) _____as long 
>>>> as under no change of type definitions etc., the code could make 
>>>> sense_____.
>>>
>>> while(func() == 0)
>>>     ;
>>>
>>> — or do you only mean that extremely short-lived (effect-less) 
>>> /assignments/ should be errors?
>>
>> Code in general. Consider:
>>
>> 1 + 1 == 2;
>>
>> The code above isn't an error but it also doesn't do anything. It 
>> should be flagged as an error.
>>
>> The empty statement in your example is not "code" the way I meant it 
>> above.
> 
> And the lack of a preprocessor means statements like that are unlikely 
> to happen “by accident”.  (I’m afraid I’m still thinking in C.)  Unless 
> this is the sort of thing a code generator might write.

Which is exactly what templates do. But, as I show in another post, all 
you really need is an alias.

Andrei



More information about the Digitalmars-d mailing list