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
