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


Reply via email to