/Zc:forScope (Übereinstimmung in for-Schleifenbereich erzwingen)

Verwendet zum Implementieren von Standard-C++-Verhalten für for -Schleifen mit Microsoft-Erweiterungen(/Ze).

Syntax

/Zc:forScope[-]

Hinweise

Das Standardverhalten besteht darin, den Initialisierer einer for Schleife nach der for Schleife außerhalb des Gültigkeitsbereichs zu lassen. Unter /Zc:forScope- und /Ze wird der Initialisierer der for Schleife neu Standard im Bereich angezeigt, bis der lokale Bereich endet.

Die Option "/Zc:forScope" ist standardmäßig aktiviert. /Zc:forScope ist nicht betroffen, wenn die Option /permissive- angegeben wird.

Die Option /Zc:forScope- ist veraltet und wird in einer der nächsten Versionen entfernt. Eine Verwendung von /Zc:forScope- generiert die Veraltungswarnung D9035.

Der folgende Code wird unter /Ze , aber nicht unter /Zakompiliert:

// 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
}

Wenn Sie /Zc:forScope-verwenden, wird die Warnmeldung C4288 (standardmäßig deaktiviert) generiert, wenn sich eine Variable aufgrund einer Deklaration, die in einem früheren Gültigkeitsbereich erfolgt ist, im Gültigkeitsbereich befindet. Um dies zu veranschaulichen, entfernen Sie die Zeichen // im Beispiel, um int izu deklarieren.

Sie können das Laufzeitverhalten von /Zc:forScope ändern, indem Sie das conform -Pragma verwenden.

Wenn Sie /Zc:forScope- in einem Projekt verwenden, für das es eine vorhandene PCH-Datei gibt, wird eine Warnung generiert, wird /Zc:forScope- ignoriert, und wird die Kompilierung mit der vorhandenen PCH-Dateien fortgesetzt. Wenn eine neue PCH-Datei generiert werden soll, verwenden Sie "/Yc" (Vorkompilierte Headerdatei erstellen).

Weitere Informationen über Konformitätsprobleme in Visual C++ finden Sie unter Nonstandard Behavior.

So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).

  2. Wählen Sie die Konfigurationseigenschaftenseite>C/C++>-Sprache aus.

  3. Ändern Sie die Eigenschaft Übereinstimmung in einem For-Schleifenbereich erzwingen .

So legen Sie diese Compileroption programmgesteuert fest

Siehe auch

/Zc (Übereinstimmung)
/Za, /Ze (Spracherweiterungen deaktivieren)