// is this ok? int i = 1; cout << i << ++i << endl; // is this ok? int t[10]; int i = 0; while ( i < 10 ) { t[i] = i++; } // real code from ... MyClass::MyClass() { memset(this,0,sizeof(this)); } // a real code from ... void f(std::vector<int>& v) for( vector<int>::iterator vi = v.begin(); vi != v.end(); ++vi) { if ( f(*vi) ) v.push_back(g(*vi)); } // and the first fix ... void f(std::vector<int>& v) for( vector<int>::reverse_iterator vi = v.rbegin(); vi != v.rend(); ++vi) { if ( f(*vi) ) v.push_back(g(*vi)); }