Compiler Error C2668

'function' : ambiguous call to overloaded function

The specified overloaded function call could not be resolved. If you’ve encountered this error on code which compiled with an earlier version of Visual C++, please read Technote: Improved Conformance to ANSI C++ for more information.

An explicit cast of one or more of the actual parameters can resolve the ambiguity.

The following is an example of this error:

struct A {};
struct B : A {};
struct X {};
struct D : B, X {};

void func( X, X );
void func( A, B );
D d;
void main()
{
   func( d, d );        // error, D has an A, B, and X 
   func( (X)d, (X)d );  // OK, uses func( X, X )
}