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.

Reply via email to