В С++ 11, как я могу написать функцию (или метод), которая принимает std:: массив известного типа, но неизвестного размера?
// made up example
void mulArray(std::array<int, ?>& arr, const int multiplier) {
for(auto& e : arr) {
e *= multiplier;
}
}
// lets imagine these being full of numbers
std::array<int, 17> arr1;
std::array<int, 6> arr2;
std::array<int, 95> arr3;
mulArray(arr1, 3);
mulArray(arr2, 5);
mulArray(arr3, 2);
Во время моего поиска я только нашел предложения по использованию шаблонов, но они кажутся беспорядочными (определения методов в заголовке) и чрезмерными для того, что я пытаюсь выполнить.
Есть ли простой способ сделать эту работу, как и обычные массивы C-стиля?