Я имею в виду следующее. Я хочу шаблонную функцию, которая берет два векторных итератора (или два указателя на массив double) и возвращает double, который каким-то образом связан с векторными итераторами или указателями массива, которые я передаю. Однако я хочу, чтобы это работало для типа double, int или любого арифметического типа.
Я думаю, что мне нельзя говорить:
template <class T>
T* func(T Begin, T End)
T new_variable = Begin + 5;
return (*new_variable);
}
потому что компилятор не поймет, что означает T *. Решение, о котором я подумал, состоит в том, чтобы взять то, что я пытаюсь вернуть, и сделать это третьим аргументом:
template <class T>
void func(T Begin, T End, T* new_variable)
new_variable = Begin + 5;
return (*new_variable);
}
Будет ли это работать? Даже если так, есть ли другой способ сделать то, что я пытаюсь сделать? (Извините, если я не был достаточно ясен.)