Como criar std :: array com lista de inicialização sem fornecer tamanho diretamente [duplicado]

Esta pergunta já tem uma resposta aqui:

Como emular a inicialização do array C “int arr [] = {e1, e2, e3,…}” com o comportamento std :: array? 9 respostas

Como posso fazera3 compilar?

int main()
{
    int a1[] = { 1, 2, 3 };
    std::array<int, 3> a2 = { 1, 2, 3 };
    std::array<int> a3 = { 1, 2, 3 };
}

É muito inconveniente e frágil codificar o tamanho da matriz ao usar uma lista de inicialização, especialmente as longas. Existe algum trabalho por aí? Espero que não, estou decepcionado porque odeio matrizes C estd::array é suposto ser o seu substituto.

questionAnswers(2)

yourAnswerToTheQuestion