Хорошо, это может показаться глупым вопросом, но вот оно:
template <typename T>
void foo(T& x)
{
}
int main()
{
foo(42);
// error in passing argument 1 of 'void foo(T&) [with T = int]'
}
Что мешает С++ создавать шаблон функции foo
с T = const int
вместо?