xsk*_*xzr 4 c++ arrays memory-address language-lawyer
这可以在 C 中得到保证,因为 WG14/N1570 中有以下句子:
6.2.5/20 ... 数组类型描述了具有特定成员对象类型的连续分配的非空对象集,称为元素类型。
但是在WG21/N4527中,即在C++中,对应的句子变成了
8.3.4/1 ...数组类型的对象包含连续分配的 N 个 T 类型子对象的非空集合。
而“描述”一词改为“包含”,这不能保证数组的地址等于它的第一个元素的地址。这种改变是有意的还是无意的?如果是故意的,数组的地址是否等于它在 C++ 中的第一个元素的地址?如果是这样,C++ 标准中的哪一段可以保证这一点?