Я уже несколько раз утверждал, что следующий код не разрешен стандартом С++:
int array[5];
int *array_begin = &array[0];
int *array_end = &array[5];
Является ли &array[5]
законным кодом С++ в этом контексте?
Я хотел бы получить ответ со ссылкой на стандарт, если это возможно.
Было бы также интересно узнать, соответствует ли он стандарту C. И если это не стандартный С++, почему было принято решение рассматривать его иначе, чем array + 5
или &array[4] + 1
?