Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: C++
Expertise: Beginner
May 30, 2000



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Error 2374 for loop-scoped variable declaration

The following code produces an error when compiled on Microsoft Visual C++ 6 SP3:

for (int i = 0; i < 10; i++)
    cout << i << endl;

int i = 2;

error C2374: 'i' : redefinition; multiple initialization

But it compiles cleanly on gcc. Why? Which interpretation of the language specification is correct?

GCC got it right. The new scoping rules of C++ restrict the scope of a variable declared in a for-loop to the loop itself, but not outside it. Visual C++ is not compliant in this respect yet. When the loop terminates, it doesn't destroy the variable i, and as a result, your second declaration of i clashes with one declared in the fo-loop.

DevX Pro
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date