为什么提议的“std::shared_ptr::operator[]”将“std::ptrdiff_t”作为参数

Why does proposed `std::shared_ptr::operator[]` take `std::ptrdiff_t` as an argument

本文关键字:std 参数 ptrdiff ptr shared operator 为什么      更新时间:2023-10-16

根据N4562提案,新提出的std::shared_ptr::operator[]采用了std::ptrdiff_t,这是一种有符号类型。

这与标准库中的每个索引运算符都不一致。即使CCD_ 3取CCD_ 4。

这个决定的理由是什么?

也许这应该是指针接口的统一。当用作数组时,好的ol’C指针接受负索引:p[-2]*(p - 2)相同;从而自然地对CCD_ 7进行签名。