Я не уверен, что это даже правильно определено. Вы не пропали ::?
Во-вторых, я не вижу определения шаблона или его имени.
В-третьих, вы приписываете тип возврата T этой функции, но вы даже ничего не возвращаете.
правильный шаблон должен выглядеть следующим образом
template <typename T> class tMyExample
{
public:
tMyExample <T> () { // constructor code }
insert (T a[], int &n, const T &x) { // your code here }
};
int main (void)
{
tMyExample <int> MyExample;
return 0;
}
Хорошо, мое определение шаблона - это просто минимум. Если вы не специализируете его или не добавляете реализации вне определения, вы попадаете в другую историю. Но объявление внутри функции (например, main) такое же: идентификатор шаблона:
Честно говоря, я никогда не использовал [] в параметрах, я использую указатели (нет необходимости в распределении, если вы используете массивы).