为什么STD :: SPAN缺乏size_type

Why does std::span lack size_type?

本文关键字:type size SPAN STD 为什么 缺乏      更新时间:2023-10-16

我一直在更新旧代码,该代码使用我的自制跨度类别到与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

内文说的一切...

相关文章: