Compiler Error C2666

'identifier' : number overloads have similar conversions

The specified overloaded function or operator was ambiguous. 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.

This error is caused by formal parameter lists that are too similar to resolve ambiguity.

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

The following is an example of this error:

void func( int, float ) {};
void func( float, int ) {};
func( 1, 1 );        // error, same conversion for each func
func( 1, (float)1 )  // OK