Как я могу передать временный массив? Я хочу сделать что-то вроде этого:
#include <iostream>
int sum(int arr[]) {
int answer = 0;
for (const auto& i : arr) {
answer += i;
}
return answer;
}
int main() {
std::cout << sum( {4, 2} ) << std::endl; // error
std::cout << sum( int[]{4, 2} ) << std::endl; // error
}
Нужен ли литерал положительного целого числа в фигурных скобках параметра функции []
? Если я включу этот литерал, будет ли он ограничивать массивы, которые я могу передать, только массивами такого размера? Кроме того, как передать элементы массива по ссылке rvalue или ссылке const? Поскольку приведенный выше пример не компилируется, я предполагаю, что тип параметра функции int&&[]
или const int&[]
не будет работать.
std::array
илиstd::vector
? - person Charles   schedule 19.02.2017