http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53152
Bug #: 53152 Summary: In "no match for operatorXX" error message, mention the types of the arguments Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: zeratul...@hotmail.com Consider the following code: struct T {}; struct S { T foo(); }; int main() { S a, b; a.foo() == b.foo(); } The error message is: error: no match for 'operator==' in 'a.S::foo() == b.S::foo()' Notice the error doesn't mention 'T' anywhere. It would be nice if it did, because in the general case the arguments passed to the operator could be arbitrarily complex expressions, and working out their type manually can be tedious.