Will the D GC be awesome?

Simen Kjaeraas simen.kjaras at gmail.com
Wed Oct 10 06:24:58 PDT 2012


On 2012-10-10, 14:24, Marco Leise wrote:

>> enum Comparison {
>>      Before = -1,
>>      Same = 0,
>>      After = 1,
>>      Unordered = NaN,
>> }

> a) There is no integer NaN and floating point is a no-go.

The NaN was intended as a joke, and to highlight the fact that
you can have opCmp return a float today, and get some of the
behavior that floats have.


> b) If you mix sortable and unsortable most algorithms fail.
>
> Otherwise an enum solution is good, but a bit longer in
> code:
>
> auto rel = a.OpCmp(b);
> if (rel < 0) ...;
> else if (rel > 0) ...;
> else ...;
>
> vs.
>
> if (rel == Comparison.Before) ...;
> else if (rel == Comparison.After) ...;
> else ...;
>
> And in many cases right now you can just "return a - b";

Yeah, this last part is what I really like about the
current solution. Of course, if we could have ranged enums:

enum Comparison {
     Before < 0,
     Same = 0,
     After > 0
}

But that's not going to happen (unless someone provides it
in a library, of course).

-- 
Simen


More information about the Digitalmars-d mailing list