У меня есть шаблонная функция с одним аргументом. Я должен создать экземпляр этой функции, не вызывая эту функцию, что явно означает, что я должен создать экземпляр.
У меня есть такая функция:
template <class T> int function_name(T a) {}
Я создал эту функцию следующим образом:
template int function_name<int>(int);
Но у меня были следующие ошибки:
error: expected primary-expression before 'template'
error: expected `;' before 'template'
template<>
формы. То, что он написал, отличается от специализации . +1 за то, что научил меня этой обновке. Удаляю свой пост. : DВаш код правильный.
Сообщение об ошибке относится к месту в коде, которое вы здесь не цитировали.
Обновить:
Исходный код был
и это было правильно.
Но он не цитировался и выглядел так:
Выдает следующую ошибку
что явно отличается от того, что цитирует OP.
В этом варианте вторая строка исправна (
<int>
может быть опущена), но первая строка неисправна. Компилятор не может догадаться, чтоT
это параметр шаблона.источник
template int function_name( T a) { }
иtemplate int function_name(int);