Описание тега ambiguous
Неоднозначный вызов - это ситуация, в которой компилятор не может определить, какую версию функции или метода использовать, исходя из заданных типов параметров. Этот тег не следует путать с тегом [двусмысленность].
Неоднозначный вызов возникает, когда параметры можно преобразовать разными способами, чтобы они соответствовали более чем одной перегрузке функции. Например:
void f(float f)
{
}
void f(double d)
{
}
Передача значения int в эту функцию вызовет ошибку компилятора неоднозначного вызова, потому что int
можно преобразовать как в float
и чтобы double
пока компилятор не может однозначно выбрать перегруженную версию функции.