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