截至 2019 年 4 月 21 日 02:44:49 UTC,[span.cons] 的版本上https://eel.is/c++draft/似乎包含一个错误:
constexpr span() noexcept;
Constraints:
Extent <= 0
istrue
.
Ensures:size() == 0 && data() == nullptr
.
Extent
已调整为size_t
类型,
和dynamic_extent
现在是numeric_limits<size_t>::max()
。
因此,Extent <= 0
本质上相当于Extent == 0
。
也就是说,当范围是动态时,构造函数被禁用,
这可能不是有意的。
我猜意图是Extent == 0 || Extent == dynamic_extent
因为这在 dynamic_extent
时有效已签署。
这是标准中的错误吗?我错过了什么吗?
最佳答案
这是LWG3198 。本周对此进行了讨论,预计八月份正式修复。
关于c++ - std::span 默认构造函数的当前标准规范在 "Extent <= 0"上是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55779467/