[Bug c++/77711] Add fix-it hints for missing parentheses in member function call
redi at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Sep 23 15:36:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77711
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
And then if the function we're calling is a member function we get another
variation:
struct A {
int foo();
int foo() const;
void bar(int);
};
int main()
{
A a;
a.bar( a.foo );
}
foo.cc: In function ‘int main()’:
foo.cc:11:16: error: no matching function for call to ‘A::bar(<unresolved
overloaded function type>)’
a.bar( a.foo );
^
foo.cc:4:8: note: candidate: void A::bar(int)
void bar(int);
^~~
foo.cc:4:8: note: no known conversion for argument 1 from ‘<unresolved
overloaded function type>’ to ‘int’
Again, we shouldn't even be trying to find a matching A::bar, because a.foo is
nonsense.
In all three examples we should notice that a.foo is invalid and give an error,
suggesting either a.foo() (to call it) or &A::foo (to form a pointer to the
member function).
More information about the Gcc-bugs
mailing list