On Wednesday, 22 January 2020 at 14:50:01 UTC, Per Nordlöw wrote:
Will that incur an extra runtime cost compared to __cmp?
I haven't looked at how `__cmp` is implemented but I would guess
there's some extra overhead. Need to get type info and then there
will be several virtual method calls involved. Seems to be one of
the initial call to `compare` and then one for each element of
the array.
BTW, why don't you implement `opCmp` with the built-in comparison
operators. Those are going to get lower to a call to `__cmp`.
Something like this:
int opCmp()(const scope typeof(this) that) const @nogc
{
auto a = this[];
auto b = that[];
return a < b ? -1 : (a > b);
}
--
/Jacob Carlborg