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