Во-первых, вам нужно объявить тип шаблона T в начале вашей функции.
template <typename T>
Во-вторых, вы не можете вернуть ссылку навременная переменная, как вы делаете здесь.(Это даже не правильный синтаксис, как прокомментировал Игорь.)
return T&();
Возможно, вы должны вместо этого выдать исключение.
throw std::out_of_range("Attempted to access out of bounds");
В-третьих, вы можете удалить this->
из своего кода.Функция уже дает вам доступ к полям вашей структуры.
Здесь вы можете получить этот действительный фрагмент кода.
template <typename T> T &Vector<T>::get(int pos) {
if (pos > index || pos < 0) {
throw std::out_of_range("Attepted to access out of bounds");
}
return array[pos];
}