Ответ 1
Возможно, это должна быть унификация интерфейса указателя. Хорошие оль-C-указатели при использовании в качестве массивов принимают отрицательные индексы: p[-2]
совпадает с *(p - 2)
; и ptrdiff_t
естественно подписывается.
Это несовместимо с каждым индексирующим оператором в стандартной библиотеке. Даже std::unique_ptr::operator[]
принимает std::size_t
.
Какое обоснование для этого решения?
Возможно, это должна быть унификация интерфейса указателя. Хорошие оль-C-указатели при использовании в качестве массивов принимают отрицательные индексы: p[-2]
совпадает с *(p - 2)
; и ptrdiff_t
естественно подписывается.