Por que as matrizes de referências são ilegais?

O código a seguir não compila.

int a = 1, b = 2, c = 3;
int& arr[] = {a,b,c,8};

O que o padrão C ++ diz sobre isso?

Eu sei que eu poderia declarar uma classe que contém uma referência e, em seguida, criar uma matriz dessa classe, como mostrado abaixo. Mas eu realmente quero saber por que o código acima não compila.

struct cintref
{
    cintref(const int & ref) : ref(ref) {}
    operator const int &() { return ref; }
private:
    const int & ref;
    void operator=(const cintref &);
};

int main() 
{
  int a=1,b=2,c=3;
  //typedef const int &  cintref;
  cintref arr[] = {a,b,c,8};
}

É possível usarstruct cintref ao invés deconst int & para simular uma matriz de referências.

questionAnswers(14)

yourAnswerToTheQuestion