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

 

Publicado: julio de 2016

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Se usa para implementar el comportamiento estándar de C++ de los bucles for con las extensiones de Microsoft (/Ze). La opción /Zc:forScope está activada de manera predeterminada.

/Zc:forScope[-]  

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

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 quiere que se genere un nuevo archivo .pch, use /Yc (Crear archivo de encabezado precompilado).

Para obtener más información sobre los problemas de conformidad de Visual C++, vea Comportamiento no estándar.

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 obtener información detallada, vea Trabajar con configuraciones de proyecto.

  2. En el panel de navegación, abra Propiedades de configuración, C o C++, página de propiedades de Lenguaje.

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

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

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

Mostrar: