KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Possible Duplicate: In C++ why can’t I write a for() loop like this: for( int i = 1, double i2 = 0; … A C developer would write this: int myIndex; for (myIndex=0;myIndex<10;++myIndex) ... A C++ developer would write this to prevent the loop variable from leaking outside the loop: for (int myIndex=0;myIndex<10;++myIndex) ... However, if you have 2 loop variables, you cannot do this anymore. The following doesn't compile: for (int myIndex=0,MyElement *ptr=Pool->First;ptr;++myIndex,ptr=ptr->next) ... The comma operator does not allow two variables to be defined this way, so we have to write it like this: int myIndex; MyElement *ptr; for (myIndex=0,ptr=Pool->First;ptr;++myIndex,ptr=ptr->next) ... Which defeats the advantage of having real loop-local variables. A solution could be to put the whole construction between braces, like this: { int myIndex; MyElement *ptr; for (myIndex=0,ptr=Pool->First;ptr;++myIndex,ptr=ptr->next) ... } But this is hardly more elegant. Isn't there a better way of doing this in C++ (or C++0x)?
Tags (comma-separated)
Save Edits
Cancel