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

Wird zum Implementieren des standardmäßigen C++-Verhaltens für for-Schleifen mit Microsoft-Erweiterungen (/Ze) verwendet. /Zc:forScope ist standardmäßig aktiviert.

/Zc:forScope[-]

Hinweise

Standardmäßig verlässt der Initialisierer einer for-Schleife nach der for-Schleife seinen Gültigkeitsbereich. Unter /Za, /Ze (Spracherweiterungen deaktivieren) bleibt der Initialisierer der for-Schleife gültig, bis die lokale Schleife endet.

Der folgende Code kann unter /Ze, nicht jedoch unter /Za kompiliert werden:

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

Wenn Sie /Zc:forScope- verwenden, wird eine (standardmäßig deaktivierte) Warnung angezeigt, wenn eine Variable aufgrund einer Deklaration aus einer vorherigen Schleife gültig ist. Um dies zu veranschaulichen, entfernen Sie die Zeichen // im obigen Code, um int i zu deklarieren.

Sie können das Laufzeitverhalten von /Zc:forScope mit dem conform-Pragma ändern.

Wenn Sie /Zc:forScope- in einem Projekt mit einer vorhandenen PCH-Datei verwenden, wird /Zc:forScope- ignoriert (mit Warnmeldung), und die Kompilierung wird mit den vorhandenen PCH-Dateien fortgesetzt. Wenn Sie eine neue PCH-Datei erstellen möchten, verwenden Sie /Yc (Datei der vorkompilierten Header erstellen).

Weitere Informationen über Konformitätsprobleme mit Visual C++ finden Sie unter Compatibility and Compliance Issues in Visual C++.

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

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Ausführliche Informationen finden Sie unter Ändern von Projekteinstellungen.

  2. Klicken Sie auf den Ordner C/C++.

  3. Klicken Sie auf die Eigenschaftenseite Sprache.

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

So legen Sie diese Compileroption programmgesteuert fest

Siehe auch

Referenz

/Zc (Übereinstimmung)

/Za, /Ze (Spracherweiterungen deaktivieren)