为什么STD :: SPAN缺乏size_type
Why does std::span lack size_type?
我一直在更新旧代码,该代码使用我的自制跨度类别到与C 20 std::span
更一致的旧代码,并且我会收到编译错误,因为std::span
没有具有size_type
,而具有index_type
。关于index_type
是否应该签署,有一场巨大的戏剧性,但是为什么要跳过size_type
?这打破了期望容器(或类似容器的对象)具有size_type
的通用代码。
原始提案p1022r0,当它称为 array_view
时,有一个 size_type
成员。作为简化的一部分,在第一个修订版P1022R1中将其删除,因为这是不需要的,因为size()
和元素访问当时是使用签名的index_type
(aka ptrdiff_t
)。在KONA 2019会议上,该决定在P1227R2中通过将index_type
更改为size_t
。
内文说的一切...
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 大于65535的C++数组[size]引发不一致的溢出
- 为什么(-1)%vector::size()总是返回0
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 使用 [] 运算符时"binding reference of type discards qualifiers"
- 在 QVector<std::unique_ptr 上使用 std::find<Type>>
- 循环中的条件:为什么每次都调用strlen(),而vector.size()只调用一次
- 在类型和包装器之间reinterpret_cast是否安全<Type>?
- 使用 cmake 的 Linux 终端上的"Conversion to non-scalar type is requested"错误
- 控制到达非空函数clang(-Wreturn-type)的末尾
- 为什么这个 std::queue/指向结构的指针列表直到 List.Size() == 0 才释放内存?
- 警告的原因是什么:"when type is in parentheses, array cannot have dynamic size"?
- 调用 list.size() 方法给出错误"expression must have class type"
- vtkTypeTraits.h 错误:"Type long is not 4 or 8 bytes in size."
- C++/ASM - "Operand size conflict" , "Improper operand type"
- 提升精神语法错误 - "no type named ‘size’ in ‘struct boost::spirit::unused_type’"
- 如何在 c++11 中使用容器 std::array<type, size> 用于多维数组?
- OpenCV 错误:断言失败 (src1.size == dst.size && dst.type() == CV_8U) in cvInRangeS
- "error: request for member ‘size’ in ‘a’, which is of pointer type"但我不认为这是一个指针
- new(size, value) Type[0]返回的指针是否合法,是否可以用来构建数组?