Я пытаюсь создать шаблонную функцию, которая позволяет мне использовать объект std :: array в качестве параметра с различным количеством элементов.
Например:
#include <array> template <class T> void func(std::array<T,/*varying#ofelems*/> ary){...}
Вы просто указываете количество элементов внутри параметров шаблона.
template<class T, size_t N> void func(std::array<T, N> arr) { }
В большинстве случаев я бы рекомендовал следовать стандартным алгоритмам и вместо этого использовать два шаблонных итератора для начала и конца.
template <class InputIt> void func(InputIt begin, InputIt end) { ... }
Лучший способ не быть строгим:
template <class T> void func(const T& ary) { .... }
Таким образом, вы покроете не только std::array, но также std::vector или другие контейнеры.
std::array
std::vector