/Zc:forScope (Wymuszaj zgodność w zakresie pętli For)
Używany w celu zaimplementowania standard C++ zachowanie dla pętle z rozszerzeniami Microsoft (/Ze).Domyślnie opcja /Zc:forScope jest włączona.
/Zc:forScope[-]
Uwagi
Standardowe zachowanie jest pozwolić for inicjatora pętli Przejdź poza zakresem po for pętli.W obszarze /Za, /Ze (Wyłącz rozszerzenia językowe), for inicjatora pętli pozostaje w zakresie do czasu zakończenia lokalnego zakresie.
Poniższy kod zostanie skompilowany w obszarze /Ze , ale nie w /Za:
// zc_forScope.cpp
// compile with: /Zc:forScope- /Za
// C2065 expected
int main() {
// Uncomment the following line to resolve.
// int i;
for (int i =0; i < 1; i++)
;
i = 20; // i has already gone out of scope under /Za
}
Jeśli użyjesz /Zc:forScope-, otrzymasz ostrzeżenie (domyślnie wyłączone), gdy zmienna w zakresie z powodu deklaracji, który został utworzony w poprzedniej zakresu.Aby zademonstrować to, należy usunąć // znaków w kodzie powyżej do deklarowania int i.
Można zmodyfikować zachowanie wykonywania /Zc:forScope z conform dyrektywę pragma.
Jeśli użyjesz /Zc:forScope- w projekcie z istniejącym plikiem .pch, /Zc:forScope- jest ignorowany, (ostrzeżenie) i kompilacji z istniejących plików .pch.Nowy plik .pch wygenerowane, należy użyć /Yc (Utwórz prekompilowany plik nagłówka).
Aby uzyskać więcej informacji na temat problemów ze zgodnością w Visual C++, zobacz Niestandardowe zachowanie.
Aby ustawić tę opcję kompilatora w środowisku programowania Visual Studio
Otwórz okno dialogowe projektu Strony właściwości.Szczegółowe informacje – zobacz: Praca z właściwościami projektu.
Kliknij folder C/C++.
Kliknij przycisk języka stronę właściwości.
Modyfikuj życie zgodności dla zakresu pętli właściwości.
Aby programowo ustawić tę opcję kompilatora
- Zobacz ForceConformanceInForLoopScope.