Como passar uma matriz temporária?
Como posso passar uma matriz temporária? Eu quero fazer algo assim:
#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
}
Preciso de um literal inteiro positivo entre chaves do parâmetro de função[]
? Se eu incluir esse literal, isso limitará quais matrizes eu posso passar para matrizes desse tamanho? Além disso, como passar elementos de matriz por referência rvalue ou referência const? Como o exemplo acima não é compilado, presumo que o tipo de parâmetro da funçãoint&&[]
ouconst int&[]
não vai funcionar.