为什么不可能在c ++中创建引用数组?

Mih*_*yan 28 c++ arrays reference

C++标准8.3.2/4说:

不应引用引用,不引用引用数组,也不引用引用指针.

但我无法理解为什么这个限制被添加到c ++中.在我看来,下面的代码可以很容易地编译和工作?这种限制的真正原因是什么?

int a = 10, b = 20;
int &c[] = {a, b};
Run Code Online (Sandbox Code Playgroud)

Jam*_*nze 27

因为对数组的索引实际上是根据对指针的隐式转换来定义的,所以指针算术.因此,为了支持这一点,您还必须支持引用指针,并定义指针算术对它们的意义.


fre*_*low 5

因为引用不是对象.引用主要是为了支持通过引用进行调用并通过引用返回,而不是&在调用站点插入.你可能想要的是一系列指针.


Alo*_*ave 5

无法重新分配引用,并且没有大小.

如果允许引用数组,则必须以特殊方式处理它们.