为什么std :: span缺少size_type?

时间:2019-03-17 16:27:00

标签: c++ c++20 std-span

我一直在更新旧代码,这些代码使用自家的span类更新为更符合C ++ 20 std::span的代码,并且由于std::span并没有得到编译错误拥有size_type,而拥有index_type。是否应该签署index_type引起了巨大反响,但是为什么要跳过size_type呢?这会破坏期望容器(或类似容器的对象)具有size_type的通用代码。

2 个答案:

答案 0 :(得分:3)

最初的提案P1022R0的名称为array_view,该提案在当时被称为size_type。作为简化的一部分,它在第一版P1022R1中已被删除,因为它是不需要的,因为size()和元素访问当时使用的是签名的index_type(又名{ {1}})。在Kona 2019会议上,通过将ptrdiff_t更改为index_typeP1227R2中更改了该决定。

答案 1 :(得分:0)

内文所说的一切……已在Belfast中修复。