}
}
- else if (reversed)
- return (reversed_match (c1, c2)
- && reversed_match (c2, c1));
-
tree parms1 = TYPE_ARG_TYPES (TREE_TYPE (fn1));
tree parms2 = TYPE_ARG_TYPES (TREE_TYPE (fn2));
if (base1 != base2)
return false;
+ if (reversed)
+ return (reversed_match (c1, c2)
+ && reversed_match (c2, c1));
+
/* Use object_parms_correspond to simplify comparing iobj/xobj/static
member functions. */
if (!object_parms_correspond (fn1, fn2, base1))
parms1 = skip_parms (fn1, parms1);
parms2 = skip_parms (fn2, parms2);
}
+ else if (reversed)
+ return (reversed_match (c1, c2)
+ && reversed_match (c2, c1));
return compparms (parms1, parms2);
}
A<> a;
B<> b;
- // when comparing the A op== to the reversed B op==, we compare them in
- // reverse order, so they match, and we choose the more constrained.
- static_assert (a == b);
+ // A op== and B op== are defined in different classes so constraints
+ // aren't considered, and the tie is broken via reversedness.
+ static_assert (!(a == b));
}