secuencia de conversión implícita en sobrecarga de funciones

No entiendo cómo el compilador elige a los mejores candidatos. Por ejemplo, tengamos el siguiente código:

int function(double, int, int){...}
int function(int, double, double){...}

Si la segunda función necesita convertir dos variables y la primera solo tiene que convertir una variable, ¿por qué no se elige la primera? ¿Por qué es esta una situación ambigua?

Respuestas a la pregunta(1)

Su respuesta a la pregunta