Почему я могу это сделать:
constexpr auto i_can() {
int a = 8;
a = 9;
//...
}
Но я не могу этого сделать:
constexpr auto i_cannot() {
std::array<int, 10> arr{};
//I cannot
arr[5] = 9;
}
Мои вопросы:
- Если я могу мутировать
int
, почему я не могу мутироватьint
, который находится внутри массива? - Является ли это языковым ограничением (С++ 14) или стандартной проблемой спецификации библиотеки?
reference std::array<T, N>::operator[](size_t)
в настоящее времяconstexpr
.