template <typename T>
T go(T a, T *b){ T *t; return *t;}
int main() {
const int x = 10;
go(x, &x);
return 0;
}
Дает ошибку компилятора:
ошибка: нет подходящей функции для вызова "go (const int &, const int *)
Почему первым аргументом является ссылочный тип const int&
вместо const int
?
Чтобы исправить эту ошибку компиляции, я переопределил процесс вычитания компилятора, указав тип аргументов go<const int>(x, &x);
, но опять же зачем мне это нужно?