https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102283
Patrick Palka <ppalka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ppalka at gcc dot gnu.org --- Comment #1 from Patrick Palka <ppalka at gcc dot gnu.org> --- Reduced testcase: struct A { }; struct B { }; void f(A&&); // #1 void f(const B&) = delete; // #2 int main() { f({}); } It seems Clang and MSVC consider the ICS for #1 to be better than that for #2, but I'm not sure why. According to http://eel.is/c++draft/over.ics.rank#3.3 the two ICSes should be incomparable since they initialize different classes, so at least according to that paragraph it appears GCC is behaving correctly here.