Dlaczego tablice referencji są nielegalne?

Poniższy kod nie jest kompilowany.

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

Co mówi o tym standard C ++?

Wiem, że mogę zadeklarować klasę zawierającą odwołanie, a następnie utworzyć tablicę tej klasy, jak pokazano poniżej. Ale naprawdę chcę wiedzieć, dlaczego powyższy kod się nie kompiluje.

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};
}

Możliwe jest użyciestruct cintref zamiastconst int & symulować tablicę odwołań.

questionAnswers(14)

yourAnswerToTheQuestion