截至2019年4月21日,02:44:49 UTC,[span.cons]上的https://eel.is/c++draft/版本似乎包含一个错误:
constexpr span() noexcept;
制约因素:
Extent <= 0
是true
。 确保: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。本周对此进行了讨论,并将于8月正式修复。