Call of overloaded function is ambiguous ?

Sebastian Ude ude@handshake.de
Fri Mar 15 05:06:00 GMT 2002


g++ from GCC 2.95.3 produces an error message with the following code:

/* [...] */

void f ( unsigned int ) { }
void f ( void * ) { }

int main ( void )
{
  f ( 0 ) ;

  return 0 ;
}

/* [...] */

test.cxx: In function `int main()':
test.cxx:6: call of overloaded `f (int)' is ambiguous
test.cxx:1: candidates are: void f(unsigned int)
test.cxx:2:                 void f(void *)


Although the same code with 'int' instead of 'unsigned int' works fine:

/* [...] */

void f ( int ) { }
void f ( void * ) { }

int main ( void )
{
  f ( 0 ) ;

  return 0 ;
}

/* [...] */

(No error message here)


Now, I am confused ...


Thanks in advance,

Sebastian



More information about the Gcc mailing list