ProtoObject and comparison for equality and ordering
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Wed May 15 00:19:05 UTC 2019
On 5/14/19 10:06 PM, Mike Franklin wrote:
> On Tuesday, 14 May 2019 at 20:36:08 UTC, Eduard Staniloiu wrote:
>
>> Should `opCmp` return a float?
>>
>> The reason: when we attempt to compare two types that aren't
>> comparable (an unordered relationship) we can return float.NaN. Thus
>> we can differentiate between a valid -1, 0, 1 and an invalid float.NaN
>> comparison.
>
> Seems like a job for an enum, not a float or an integer.
I repeat myself: this won't work.
Recall that a < b is lowered into a.opCmp(b) < 0. So we have a
comparison against the literal 0. For that float works nicely because
nan etc etc.
More information about the Digitalmars-d
mailing list