template <size_t N>
void addValues(vector<tm>* newDates, vector<double> (&newValues)[N]);
Причина, по которой это работает, в том, что это шаблон. Значение N
известно во время компиляции, поскольку вы определяете значения в виде массива: vector<double> values[COUNT]
. Поскольку компилятор знает размер значений во время компиляции, он может заменить N
на COUNT
.
Поскольку это шаблон, вы сможете вызывать эту функцию с любым массивом размеров, необязательно размером COUNT.
Я бы также рекомендовал изменить newDates на ссылку, как предложил Фред Нурк.
template <size_t N>
void addValues(vector<tm>& newDates, vector<double> (&newValues)[N]);