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