[Bug c++/16068] New: Bad error message

igodard at pacbell dot net gcc-bugzilla@gcc.gnu.org
Fri Jun 18 23:33:00 GMT 2004


In:

#include    <iostream>
class A{};

template<typename T>
void    operator<<(const A&, const T& t) {}

int main() {
    A a;
    a << std::endl;
    }

You get the message:

~/ootbc/common/test/src$ g++ foo1.cc
foo1.cc: In function `int main()':
foo1.cc:9: error: no match for 'operator<<' in 'a << std::endl'


While there is an error here, it is that there are multiple matches (endl is an overloaded function, all of which match) and is ambiguous, rather than that there are no matches. The error should should the usual unresolvable ambiguity message listing the ambiguous identifications.

This bug is related to #16058, which was (incorrectly) reported as an indentification error as a result of a message like this.

Ivan

-- 
           Summary: Bad error message
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: igodard at pacbell dot net
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16068



More information about the Gcc-bugs mailing list