• [^] # Portée des boucles for

    Posté par . En réponse à la dépêche Sortie de GCC 3.4.0. Évalué à 1.

    En fait dans les première versions de la norme C++, la règle était que la portée d'une variable était le bloc d'accolade englobant, ce qui implique qu'un compilateur conforme au standard devait refuser de compiler ton code ci-dessus.

    Comme c'était pas très intuitif,au début des années 90, la norme a été changée pour que les variables déclarées dans un for soient locales à la boucle.

    Comme les gens qui ont conçu Visual voulaient garder un maximum de compatibilité avec le vieux code, ils ont fait en sorte que par défaut celui-ci applique l'ancienne règle de portée.
    La nouvelle règle est en fait bien présente dans le compilateur mais n'est utilisée que si tu compile avec le flag --ansi.