¿Cómo pasar una matriz temporal?
¿Cómo puedo pasar una matriz temporal? Quiero hacer algo como esto:
#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
}
¿Necesito un literal entero positivo en las llaves del parámetro de función[]
? Si incluyo ese literal, ¿limitará qué matrices puedo pasar a solo matrices de ese tamaño? Además, ¿cómo puedo pasar elementos de matriz por rvalue reference o const reference? Como la muestra anterior no se compila, supongo que se debe hacer el tipo de parámetro de la funciónint&&[]
oconst int&[]
no funciona