/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 verbleibt der Initialisierer der for
Schleife im Bereich, 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 i
zu 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
Ö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).
Navigieren Sie zur Eigenschaftenseite Konfigurationseigenschaften>C/C++>Sprache.
Ä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)