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

             Bug #: 53822
           Summary: Diagnostic: spell out type in ambiguous call
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: gli...@gcc.gnu.org


Hello,

void f(float);
void f(double);
int main(){
  typedef unsigned NT;
  NT i=3;
  f(i);
}

mp.cc: In function ‘int main()’:
mp.cc:6:6: error: call of overloaded ‘f(NT&)’ is ambiguous
mp.cc:6:6: note: candidates are:
mp.cc:1:6: note: void f(float)
mp.cc:2:6: note: void f(double)

Notice that the error message never mentions "unsigned". In the middle of some
deep templated code, finding out what the problematic NT is can be hard.

Reply via email to