Я пытаюсь вызвать две одинаковые функции (одна шаблонная, а другая нормальная).Шаблонный компилируется успешно, но не шаблонный дает ошибку компиляции.Почему?
template <typename ParamType>
void Template_universal_ref(ParamType&& param)
{
cout << "Template_universal_ref, param : " << param << endl;
}
void NonTemplate_universal_ref(int&& param)
{
cout << "NonTemplate_universal_ref, param : " << param << endl;
}
int main()
{
int x=5;
Template_universal_ref(x);
//NonTemplate_universal_ref(x); // This is giving compilation error
return 0
}
На мой взгляд NonTemplate_universal_ref(x);
это специальная версия Template_universal_ref(x);
.Почему NonTemplate_universal_ref(x);
приводит к ошибке компиляции?