We recommend using Visual Studio 2017

Compiler Warning (level 1) C4258


The latest version of this topic can be found at Compiler Warning (level 1) C4258.

variable' : definition from the for loop is ignored; the definition from the enclosing scope is used"

Under /Ze and /Zc:forScope, variables defined in a for loop go out of scope after the for loop ends. This warning occurs if a variable with the same name as the loop variable, but defined in the enclosing loop, is used again in the scope containing the for loop. For example:

// C4258.cpp  
// compile with: /Zc:forScope /W1  
int main()  
   int i;  
      for (int i =0; i < 1; i++)  
      i = 20;   // C4258 i (in for loop) has gone out of scope