"dans des vieilles spécification du C++, des variables déclarées lors de l´initialisation de la boucle for pouvaient être utilisées au delà de la boucle."
Non du tout. C´etait un bug de visual studio 
La norme (j ai verifie les vieilles C, C99 et c++) disent que ces declaration sont propres a la boucle for.
En effet:
"The for statement
for ( forinitstatement; conditionopt ; expressionopt ) statement
is equivalent to:
{
forinitstatement
while ( condition ) {
statement
expression ;
}
}
"