Описание тега ambiguous

Неоднозначный вызов - это ситуация, в которой компилятор не может определить, какую версию функции или метода использовать, исходя из заданных типов параметров. Этот тег не следует путать с тегом [двусмысленность].

Неоднозначный вызов возникает, когда параметры можно преобразовать разными способами, чтобы они соответствовали более чем одной перегрузке функции. Например:

void f(float f)
{

}

void f(double d)
{

}

Передача значения int в эту функцию вызовет ошибку компилятора неоднозначного вызова, потому что int можно преобразовать как в float и чтобы double пока компилятор не может однозначно выбрать перегруженную версию функции.