Udostępnij za pośrednictwem


/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

  1. 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).

  2. Wybierz stronę właściwości Właściwości>konfiguracji C/C++>Language.

  3. Zmodyfikuj właściwość Force Conformance w polu Zakres pętli.

Aby programowo ustawić tę opcję kompilatora

Zobacz też

/Zc (Zgodność)
/Za, /Ze (Wyłącz rozszerzenia językowe)