Разрешение перегрузки – совпадение посредством преобразования const считается точным совпадением? [дубликат]C++

Программы на C++. Форум разработчиков
Anonymous
Разрешение перегрузки – совпадение посредством преобразования const считается точным совпадением? [дубликат]

Сообщение Anonymous »

Код: Выделить всё

void f(int) {}

void f(const int&) {}

int main()
{
int i = 1;
f(i);
}
Мне поступает неоднозначный звонок, что я упускаю? Я использую GCC 11.2.0 с -std=c++11.
Я читаю C++ Primer 5-е издание, 6.6.1 Преобразования типов аргументов:

Конверсии ранжируются следующим образом:
  • Точное совпадение. Точное совпадение происходит, когда:
    • Типы аргумента и параметра идентичны.
    • Аргумент преобразуется из типа массива или функции в соответствующий тип указателя.
    • Константа верхнего уровня добавляется к аргументу или удаляется из него.
  • Сопоставление через константное преобразование.
Согласно книга f(int) должна иметь более высокий приоритет, поскольку она точно соответствует.

Подробнее здесь: https://stackoverflow.com/questions/786 ... exact-matc

Вернуться в «C++»