"except that a default constructed array is not empty"是什么意思?
What does "except that a default constructed array is not empty" mean?
在 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
constexpr
,empty()
应该是size() == 0
的代名词。
相关文章:
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- 使用JsonCpp将数据返回到带有pybind11的python会在python调用中产生Symbol not foun
- OpenCV Android C++ imwrite not found
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 使用单词"not"作为C ++类的名称会导致VS2019错误
- 错误"Could not find Boost"(缺少:上下文标头)
- 如何修复"error: ‘_1’ was not declared in this scope"?
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- Is !NaN not a NaN?
- 为什么我会" void value not ignored as it ought to be"?
- 解决"ld: library not found for -ltensorflow_framework.2.3.0"
- 加载与引用 .NET DLL 位于同一文件夹中的引用的 .NET DLL 时"Not found"异常
- Directx 11 - CompileFromFile() is not compiling
- 方法错误"not all control paths return a value"和方法不返回值
- Centos7 g++ "to_string is not in a member of std"
- 将系数存储在头文件的数组中("does not name a type"错误)
- std::queue::empty() not working?
- "except that a default constructed array is not empty"是什么意思?
- 当堆栈仍有元素时,为什么跳过"if stack not empty"是有条件的?
- 在 Mac OSX 中使用 cv::VideoWriter 会产生"WARNING: Could not create empty movie file container."