Как работает вычет аргумента шаблона функцииC++

Программы на C++. Форум разработчиков
Anonymous
Как работает вычет аргумента шаблона функции

Сообщение Anonymous »

Рассмотрим следующий код < /p>

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

template
class A{};

template  void f(A, A){}

int main(){
f(A(), A());
return 0;
}
Я думаю, что происходит (пожалуйста, поправьте меня здесь), что компилятор рассматривает f (a (), a ()) , каким -то образом выводит, что i = 5 и видит, что шаблон соответствует.
Вопрос. Я не предоставляю аргумент для f явно, поэтому он должен вывести его, что кажется нелегкой задачей. Проводит ли он какой -то статический анализ, чтобы определить это? Отличается от компилятора до компилятора?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ction-work

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