https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70610
--- Comment #3 from Patrick Palka <ppalka at gcc dot gnu.org> --- Not limited to operator overloads either: void bar (const int &, int &); void bar (int &, const int &); void bar (const int &, const int &); int a, b; template <typename T> void foo () { bar (a + 1, b + 2); }