Ouch: return values as lvalue

Joel C. Salomon JoelCSalomon at Gmail.com
Tue Jan 30 19:30:31 PST 2007


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.

--Joel



More information about the Digitalmars-d mailing list