https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103833
Bug ID: 103833 Summary: Overloaded static member function cannot be resolved unlike overloaded global function Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: fchelnokov at gmail dot com Target Milestone: --- In the following code: ``` void g(int) {} void g(double) {} struct A { static void m(int) {} static void m(double) {} }; int main() { (&g)(0); //ok (&A::m)(0); //error in GCC and Clang } ``` the resolution of overloaded global function `g` goes fine, but as to similar static member function `A::m` the overload resolution fails, which looks wrong. MSVC has not problem with either case. Demo: https://gcc.godbolt.org/z/585e5Gc4b Related discussion: https://stackoverflow.com/q/68947849/7325599