En C++ cambiar una variable de bucle dentro de un bucle para se permite:¿Cómo mostrar que una variable de control de bucle no está modificada dentro del cuerpo for-loop de C++?
for(int i = 0; i < limit; i++) {
if(condition) {
i--;
}
}
Ahora bien, si un cuerpo del bucle es bastante complejo no es inmediatamente obvio para el lector si la variable de bucle se cambia dentro del bucle cuerpo. Sería bueno modificar el código de alguna manera para que, una vez que el lector solo vea el encabezado for-loop, sepa inmediatamente que la variable de bucle no ha cambiado dentro del cuerpo.
Por ejemplo, si uso const
:
const int value = computeValue();
//lots of code here
entonces es claro que todo lo que está escrito el código debajo de la definición de la variable const
la variable no se ha modificado.
¿Hay alguna manera de lograr algo similar - constness lógica dentro de la iteración - en el caso de las variables de control for-loop en C++?
Creo que 'std :: for_each' podría hacer esto. – kennytm
Utilicé 'BOOST_FOREACH' con gran éxito. Incluso puede introducir una conveniencia '#define foreach BOOST_FOREACH' en su encabezado precompilado. –