09.06.2017 18:12, Steven Schveighoffer пишет:
int doCmp(T)(auto ref T t1, auto ref T t2)
{
    static if(is(typeof(t1.opCmp(t2))))
     return t1.opCmp(t2);
    else
    {
       if(t1 < t2) return -1;
       else if(t1 > t2) return 1;
       return 0;
    }
}
Isn't it enough to use just '<' et al?
int opCmp(const Pair r) const
{
    if (f < r.f)
        return -1;
    if (f > r.f)
        return 1;

    if (s < r.s)
        return -1;
    if (s > r.s)
        return 1;

    return 0;
}
for floating types it's not completely right of course but nevertheless

Reply via email to