/Zc:forScope (Forzar ajuste en el ámbito del bucle For)

Se usa para implementar el comportamiento estándar de C++ de los bucles for con las extensiones de Microsoft (/Ze).

Sintaxis

/Zc:forScope[-]

Comentarios

El comportamiento estándar consiste en dejar que el inicializador de un bucle for salga del ámbito después del bucle for. En /Zc:forScope- y /Ze, el inicializador del bucle for permanece dentro del ámbito hasta que finaliza el ámbito local.

La opción /Zc:forScope está activada de manera predeterminada. /Zc:forScope no se ve afectado cuando se especifica la opción /permissive-.

La opción /Zc:forScope- está en desuso y se quitará en una próxima versión. El uso de /Zc:forScope- genera la advertencia de elemento en desuso D9035.

El siguiente código se compila en /Ze , pero no en /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
}

Si usa /Zc:forScope-, se generará una advertencia C4288 (desactivada de forma predeterminada) si una variable está dentro del ámbito debido a una declaración que se realizó en un ámbito anterior. Para mostrarlo, quite los caracteres // del código de ejemplo para declarar int i.

Puede modificar el comportamiento en tiempo de ejecución de /Zc:forScope mediante la pragma conform .

Si usa /Zc:forScope- en un proyecto con un archivo .pch existente, se genera una advertencia, se ignora /Zc:forScope- y la compilación continúa con los archivos .pch existentes. Si desea que se genere un nuevo archivo .pch, use /Yc (Crear un archivo de encabezado precompilado).

Para obtener más información sobre los problemas de conformidad de Visual C++, vea Nonstandard Behavior.

Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.

  2. Seleccione la página de propiedades Propiedades de configuración>C/C++>Lenguaje.

  3. Modifique la propiedad Forzar ajuste en el ámbito del bucle For .

Para establecer esta opción del compilador mediante programación

Consulte también

/Zc (Ajuste)
/Za, /Ze (Deshabilitar extensiones de lenguaje)