For Schleife - VS 2010
-
Guten Abend
for(int i = 0; i < 100; i++) i = i + 2; return i;
Seit wann ist hier i nicht definiert? Kann man das ändern bei VS 2010?
Über all klappt es nur nicht bei VS 2010Das ist doch reinste verarsche
-
i verlässt mit der Schleife den Scope und ist somit danach nicht mehr defniert.
Das folgende ist äquivalent zu deinem Code.for(int i = 0; i < 100; i++) { i = i + 2;//NUR HIER EXISTIERT i } return i;
-
MicrosoftSUCKZ schrieb:
Guten Abend
for(int i = 0; i < 100; i++) i = i + 2; return i;
Seit wann ist hier i nicht definiert? Kann man das ändern bei VS 2010?
Über all klappt es nur nicht bei VS 2010Das ist doch reinste verarsche
Das ist aber in C++ so, daß die Variable lokal zur for-Schleife ist.
Es steht im C++-Standard. Schon lange.
Nur alte Compiler hatten das falsch gemacht.
VS 2010 ist dahingehend repariert worden.Mit
int i; for(i = 0; i < 100; i++) i = i + 2; return i;
kannste ja zum Glück den alten Code umschreiben.
-
VS 2010 ist dahingehend repariert worden.
naja in 2008 funktioniert es auch nicht. Es muss wohl ein sehr alter Code sein.
-
Ja toll das es nicht funktioniert
jetzt muss ich 10000 zeilen code ändern oder was? man ey alter so ne scheiße man
-
-
Tja, hättest du es von Anfang an richtig gemacht
-
MicrosoftSUCKZ schrieb:
Ja toll das es nicht funktioniert
jetzt muss ich 10000 zeilen code ändern oder was? man ey alter so ne scheiße mandu hast 10000 Zeilen Müll programmiert?
-
Es gibt dafür beim VS auch den "/Zc:forScope"-Schalter (unter "Projekteigenschaften"/ "C/C++" / "Sprache": "Übereinstimmung in einem For-Schleifenbereich erzwingen").
Besser ist jedoch das Umschreiben in standardkonformes C++...
-
volkard schrieb:
VS 2010 ist dahingehend repariert worden.
Schon VC 6 hatte einen Switch dafür und seit allerspätestens VC 8 (2005) ist das standardkonforme Verhalten default
-
tri-Tra-Troll-AA