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.

questionAnswers(2)

yourAnswerToTheQuestion