/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). La opción /Zc:forScope está activada de manera predeterminada.
/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 /Za, /Ze (Deshabilitar extensiones de lenguaje), 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 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
}
Si usa /Zc:forScope-, recibirá una advertencia (desactivada de forma predeterminada) si una variable está dentro del ámbito debido a una declaración que se realizó en un ámbito anterior. Para mostrar esto, quite los caracteres // del código anterior para declarar int i.
Puede modificar el comportamiento en tiempo de ejecución de /Zc:forScope con la pragma conform.
Si utiliza /Zc:forScope- en un proyecto con un archivo .pch existente, /Zc:forScope- se ignorará (con una advertencia) y la compilación continuará 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 con Visual C++, vea Comportamiento no estándar.
Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio
Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para obtener información detallada, vea Trabajar con configuraciones de proyecto.
Haga clic en la carpeta C/C++.
Haga clic en la página de propiedades Lenguaje.
Modifique la propiedad Forzar ajuste en el ámbito del bucle For.