Рассмотрим следующую программу:
int main ()
{
const int e = 10;
for (decltype(e) i{0}; i < e; ++i) {
// do something
}
}
Это не скомпилируется с clang (а также gcc):
decltype.cpp:5:35: error: read-only variable is not assignable
for (decltype(e) i{0}; i < e; ++i) {
^ ~
В принципе, компилятор предполагает, что i
должен быть const, поскольку e
есть.
Можно ли использовать decltype
, чтобы получить тип e
, но удалить спецификатор const
?