Я перегружаю функцию f с двумя разными типами параметров.
В source.h я объявляю две функции.
Итак, у меня есть две функции: одна принимает ссылочный тип, а другая — значение (передача по ссылке и передача по значению соответственно).< /p>
В source.cpp я их определяю
Код: Выделить всё
void f(int& a){
a + 1;
}
void f(int a){
a + 1;
}
Затем в основной функции
Код: Выделить всё
int main() {
int a = 1;
int& b = a;
f(b);
}
Компилятор (clang-tidy) обнаруживает проблему: вызов f неоднозначен. Почему это происходит? Являются ли int& и int двумя разными типами? Если да, то почему компилятор не обнаруживает проблему в source.cpp, где определены функции?
Подробнее здесь:
https://stackoverflow.com/questions/781 ... types-in-c