Код: Выделить всё
#include
int main()
{
static constexpr std::array arr{};
constexpr const int* ptr = &arr[0];
constexpr const int* ptr2 = (const int*)ptr + 4;// error
return 0;
}
Код: Выделить всё
array subscript value 4 is outside the bounds of array type _Type {aka const int [3]}|
В Windows 10 и gcc10.1.0, расположенных по адресу C:\cygwin64\usr\local\bin
Я даже не разыменовываю указатель, поэтому меня немного злит «заботливость» компилятора.
Мой вопрос следующее:
Что я могу сделать, чтобы этот код скомпилировался и сохранил мой проектный выбор — наличие несвязанных итераторов? (а не только после последнего конца, что уже разрешено компилятором). Могу ли я отключить ошибку выхода за пределы с помощью gcc?
Подробнее здесь: https://stackoverflow.com/questions/640 ... -constexpr
Мобильная версия