Почему не шаблонная функция не компилируется, где компилируется функция шаблона? - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь вызвать две одинаковые функции (одна шаблонная, а другая нормальная).Шаблонный компилируется успешно, но не шаблонный дает ошибку компиляции.Почему?

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); приводит к ошибке компиляции?

...