Я думаю, что циклы C ++ 11 для диапазонов позволяют вам предотвратить это:
for (const int i : some_range) {
++i; // forbidden
}
Но я не думаю, что стандарт предоставляет простой способ определения целочисленного диапазона, как в обычномfor
петля.some_range
может быть контейнером или boost::counting_range
.
Считаете ли вы, что этот "счетчик цикла FOR" зависит от вас.Я полагаю, что «правильным» примером будет цикл, который принимает произвольное выражение для изменения счетчика между циклами (i++
в вашем примере), но не позволяет изменять счетчик в цикле, кроме этого выражения.