make (a < b < c) illegal?
Joel C. Salomon
JoelCSalomon at Gmail.com
Wed Feb 14 06:16:26 PST 2007
Russell Lewis wrote:
>> The chain that I'm concerned about is this:
>> a==b == c==d
>> which (the spacing makes clear) is meant to be
>> (a==b) == (c==d)
>> but which could me misread as
>> (a==b) && (b==c) && (c==d)
>> and which is probably (I'm not sure) currently implemented by the
>> compiler as:
>> ((a==b) ==c) ==d
>>
>> IMHO, C should have allowed comparison chaining from the start, but
>> since it didn't, I don't think that it would be a good idea to start
>> allowing it. There will always be the newbies from C who will misread
>> it. (sigh)
>
> Addendum: I would be ok with making the less than/greater than operators
> be chainable (since those operators are nonsense when used with boolean
> values), but I would ask that no expression be able to mix less-than and
> greater-than. It would be ok to mix < with <=, but not < with >.
Why this prejudice? With the chaining as people have discussed it,
a < b > c
expands to
(a < b) && (b > c)
— why would you prohibit this?
--Joel
More information about the Digitalmars-d
mailing list