Sì, apparentemente c'è una tale opzione. Vi consiglio caldamente di evitare di usarlo. Risolvi il codice.
Nelle prime versioni di C ++, l'ambito di una variabile definita in un'intestazione di ciclo for
estesa all'estremità del blocco contenente il ciclo, rendendo valido il codice nella domanda. Nelle versioni moderne del linguaggio, l'ambito termina alla fine del ciclo, rendendo il tuo codice non valido. La modifica è stata apportata nello standard ISO C ++ del 1998, se non prima, quindi sembra che tu stia guardando un codice piuttosto vecchio.
Secondo questa pagina web per Visual Studio 2015, il /Zc:forScope-
L'opzione indica al compilatore di implementare la vecchia semantica.
The /Zc:forScope-
option is deprecated and will be removed in a future
release. Use of /Zc:forScope-
generates deprecation warning D9035.
Standard behavior is to let a for
loop's initializer go out of scope
after the for loop. Under /Zc:forScope-
and /Ze
, the for
loop's
initializer remains in scope until the local scope ends.