En C++ modifier une variable de boucle à l'intérieur d'une boucle for est autorisé:Comment montrer qu'une variable de contrôle de boucle n'est pas modifiée dans le corps de la boucle for C++?
for(int i = 0; i < limit; i++) {
if(condition) {
i--;
}
}
Maintenant, si un corps de la boucle est assez complexe, il est pas évident au lecteur si la variable de boucle est modifiée dans la boucle corps. Il serait bien de modifier le code de manière à ce que, une fois que le lecteur ne voit que l'en-tête, il sache immédiatement que la variable de boucle n'est pas modifiée dans le corps.
Par exemple, si j'utilise const
:
const int value = computeValue();
//lots of code here
alors il est clair que quel que soit le code est écrit ci-dessous la définition de la variable const
la variable est inchangée.
Existe-t-il un moyen d'obtenir quelque chose de similaire - la constance logique au sein de l'itération - dans le cas de variables de contrôle for-loop en C++?
Je crois que 'std :: for_each' pourrait faire cela. – kennytm
J'ai utilisé 'BOOST_FOREACH' avec beaucoup de succès. Vous pouvez même introduire un utilitaire '#define foreach BOOST_FOREACH' dans votre en-tête précompilé. –