"except that a default constructed array is not empty"是什么意思?

What does "except that a default constructed array is not empty" mean?

本文关键字:not empty 是什么 意思 is array except that default constructed      更新时间:2023-10-16

在 N3337 中,我正在阅读 §23.3.2.1/3 它指出:

array满足容器和 可逆容器 (23.2),但默认构造的容器array 对象不为空,并且该交换不具有恒定的复杂性。

在 §23.2.1 表 96 容器要求中,它显示了 post 条件为 u.empty() 的默认构造对象X u;。大概如下:

std::array<int, 0> a;

应该以a.empty()输出1 的结果,它确实如此。那么这里的"空"是什么意思呢?

您正在查看边框情况 - 零大小的数组是否为空?忽略这个具体问题,标准引用说,在默认构造上,一般std::array<T,N> arr不满足后置条件arr.empty()。事实上,只有当N==0时,std::array<T, N>才会empty()。这个定义也是很自然的——std::array<T,N>::size()是具有价值N constexprempty()应该是size() == 0的代名词。