В следующем коде:Вывести std :: размер массива?
template<size_t N>
int b(int q, const std::array<int, N>& types)
{
int r = q;
for (int t : types)
{
r = r + t;
}
return r;
}
int main()
{
b<2>(9, { 2,3 });
}
Как я могу избежать того, чтобы указать 2 в вызове б для N? Почему этот тип не может быть автоматически выведен? Без этого я получаю сообщение об ошибке:
'b': no matching overloaded function found 'int b(int,const std::array &)': could not deduce template argument for 'N'
Ах извините, моя цель состоит в том, чтобы передать массив целых чисел, которые будут проверены против ИНТА MTYPE образом структур, сырой массив кажется хорошим достаточно для того, что я делаю в любом случае – paulm