O que o compilador C ++ faz ao obter parâmetros padrão ambíguos?

O que o compilador C ++ faz ao obter parâmetros padrão ambíguos? Por exemplo, digamos que havia uma função como:

void function(int a = 0, float b = 3.1);
void function(int a, float b =1.1, int c = 0);

O acima é considerado ambíguo? Caso contrário, o que o compilador faz (como a função corresponde exatamente) ao chamar algo comofunction1(10) ?

Obrigado!

questionAnswers(4)

yourAnswerToTheQuestion