https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105223
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jason Merrill <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:4195fced8a13422db94e179404588d9d887a036a commit r12-8098-g4195fced8a13422db94e179404588d9d887a036a Author: Jason Merrill <ja...@redhat.com> Date: Mon Apr 11 17:51:43 2022 -0400 c++: using operator= [PR105223] In a template class A we normally add an implicit using A::operator= as a placeholder for the implicitly declared operator whose signature we don't know yet. In my patch for PR92918 I stopped doing that if the class has an explicit operator=, but that was wrong; an operator= taking an unrelated type doesn't prevent the implicit declaration. When I was working on that patch, the change was necessary to avoid another regression, but apparently it is no longer needed. PR c++/105223 PR c++/92918 gcc/cp/ChangeLog: * class.cc (finish_struct): Always using op=. gcc/testsuite/ChangeLog: * g++.dg/template/using31.C: New test.