People using loop variables in compilers like VC++ 6.0 are acccustomed to using loop variables after the loop. For example, take a look at the following code:
for (int i=0; i<100; i++)
// 'i' used after the loop.
std::cout << i;
This code would happily compile under VC++ 6.0 or lower. But this code is in violation of C++ standards which explicitly state that the scope of the loop control variable i
is limited to within the loop, after which it is destroyed.
This rule has been correctly implemented from VC++ 7.0 onwards. It is also correctly implemented in gcc. So if you're migrating a project from VC++ 6.0 to 7.0 or to gcc, this discrepancy will cause compilation errors.
So, avoid using the loop variables outside the loop.
C.V. Ram Narayanan Sastry