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

Reply via email to