ProtoObject and comparison for equality and ordering

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Wed May 15 00:08:10 UTC 2019


On 5/14/19 12:36 AM, Seb wrote:
> On Tuesday, 14 May 2019 at 21:06:05 UTC, 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.
>>
>> Mike
> 
> +1 for enum. As far as I can see you only have four actual states:
> 
> lower, equal, higher, nonComparable

This won't work because the result of opCmp is compared against zero. 
Using a floating point number is likely to be more efficient.


More information about the Digitalmars-d mailing list