неявная последовательность преобразования в перегрузке функций
Я не понимаю, как компилятор выбирает лучших кандидатов. Например, давайте иметь следующий код:
int function(double, int, int){...}
int function(int, double, double){...}
Если второй функции необходимо преобразовать две переменные, а первой - только одну переменную, почему первая не выбрана? Почему это неоднозначная ситуация?