ProtoObject and comparison for equality and ordering

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Wed May 15 00:20:58 UTC 2019


On 5/14/19 1:08 AM, Andrei Alexandrescu wrote:
> 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.

s/likely/also likely/


More information about the Digitalmars-d mailing list