История изменений
Исправление fsb4000, (текущая версия) :
Ты можешь делать любой указатель, UB будет когда произойдёт разыменование указателя.
Попробуй так:
static const int arrs[10]{};
void foo() {
constexpr const int* y = arrs + 11;
constexpr int x = *y;
}
main.cpp: In function 'void foo()':
main.cpp:5:23: error: array subscript value '11' is outside the bounds of array 'arrs' of type 'const int [10]'
5 | constexpr int x = *y;
| ^~
main.cpp:1:18: note: declared here
1 | static const int arrs[10]{};
| ^~~~
Исходная версия fsb4000, :
Ты можешь делать любой указатель, UB будет когда произойдёт разыменование указателя.
Попробуй так:
static const int arrs[10]{};
void foo() {
constexpr const int* y = arrs + 13;
constexpr int x = *y;
}
main.cpp: In function 'void foo()':
main.cpp:5:23: error: array subscript value '11' is outside the bounds of array 'arrs' of type 'const int [10]'
5 | constexpr int x = *y;
| ^~
main.cpp:1:18: note: declared here
1 | static const int arrs[10]{};
| ^~~~