Что означает возможно-гипотетический в правилах арифметики указателей?

В спецификации стандарта для арифметики указателей ([expr.add]/4.2) мы имеем:

В противном случае, если P указывает на элемент массива i объекта массива x с элементами n ([dcl.array]), выражения P + J и J + P (где J имеет значение j) указывают на (возможно, гипотетический) элемент массива i + j из x, если 0 ≤ i + j ≤ n и выражение P - J указывает на (возможно, гипотетический) элемент массива i − j из x, если 0 ≤ i − j ≤ n.

Что здесь означает «возможно-гипотетический»? Этот отрывок уже ограничивает результирующий указатель тем, что он находится в диапазоне массива. Ну, в том числе слот с одним прошедшим концом. Это то, на что он ссылается?


person Lightness Races in Orbit    schedule 04.01.2020    source источник
comment
Связанный вопрос: stackoverflow.com/ вопросы/46018409/   -  person Evg    schedule 04.01.2020


Ответы (1)


Да, это последний «элемент».

[basic.compound]/3: [..] В целях арифметики указателей ([expr.add]) и сравнения ([expr.rel], [expr.eq]) указатель после конца последнего элемента массива x из n элементы считаются эквивалентными указателю на гипотетический элемент массива n из x, а объект типа T, который не является элементом массива, считается принадлежащим массиву с одним элементом типа T. [..]

person Lightness Races in Orbit    schedule 04.01.2020