/Zc:forScope (Wymuszaj zgodność w zakresie pętli For)
Służy do implementowania standardowego zachowania języka C++ dla pętli z rozszerzeniami firmy Microsoft (/Ze).
Składnia
/Zc:forScope[-]
Uwagi
Standardowe zachowanie polega na tym for
, że inicjator pętli wyjedzie poza zakres po for
pętli. W obszarze /Zc:forScope- i /Zefor
inicjator pętli pozostaje w zakresie do momentu zakończenia zakresu lokalnego.
Opcja /Zc:forScope jest domyślnie włączona. /Zc:forScope nie ma wpływu, gdy określono /permissive- opcji.
Opcja /Zc:forScope- jest przestarzała i zostanie usunięta w przyszłej wersji. Użycie /Zc:forScope- generuje ostrzeżenie o wycofaniu D9035.
Poniższy kod kompiluje się pod /Ze , ale nie w / Za:
// zc_forScope.cpp
// compile by using: cl /Zc:forScope- /Za zc_forScope.cpp
// C2065, D9035 expected
int main() {
// Compile by using cl /Zc:forScope- zc_forScope.cpp
// to compile this non-standard code as-is.
// Uncomment the following line to resolve C2065 for /Za.
// int i;
for (int i = 0; i < 1; i++)
;
i = 20; // i has already gone out of scope under /Za
}
Jeśli używasz /Zc:forScope-, ostrzeżenie C4288 (domyślnie wyłączone) jest generowane, jeśli zmienna jest w zakresie z powodu deklaracji, która została wykonana w poprzednim zakresie. Aby to zademonstrować, usuń //
znaki w przykładowym kodzie, aby zadeklarować wartość int i
.
Zachowanie /Zc:forScope można zmodyfikować za pomocą zgodnego pragma.
Jeśli używasz /Zc:forScope- w projekcie, który ma istniejący plik pch, zostanie wygenerowane ostrzeżenie, /Zc:forScope- zostanie zignorowane, a kompilacja będzie kontynuowana przy użyciu istniejących plików pch. Jeśli chcesz wygenerować nowy plik pch, użyj / Yc (Utwórz wstępnie skompilowany plik nagłówka).
Aby uzyskać więcej informacji na temat problemów ze zgodnością w programie Visual C++, zobacz Zachowanie niezgodne.
Aby ustawić tę opcję kompilatora w środowisku programowania Visual Studio
Otwórz okno dialogowe Strony właściwości projektu. Aby uzyskać szczegółowe informacje, zobacz Set C++ compiler and build properties in Visual Studio (Ustawianie właściwości kompilatora języka C++ i kompilowania w programie Visual Studio).
Wybierz stronę właściwości Właściwości>konfiguracji C/C++>Language.
Zmodyfikuj właściwość Force Conformance w polu Zakres pętli.
Aby programowo ustawić tę opcję kompilatora
- Zobacz: ForceConformanceInForLoopScope.