/ZC:forScope (forçar conformidade no escopo de Loop)
Usado para implementar o comportamento padrão do C++ para para loops com extensões do Microsoft (/Ze). /Zc:forScopeé ativado por padrão.
/Zc:forScope[-]
Comentários
O comportamento padrão é permitir que um for o inicializador do loop ir fora do escopo após a for loop. Em / Za, /Ze (linguagem de desabilitar extensões), o for o inicializador do loop permanece no escopo até as extremidades de escopo local.
O seguinte código será compilado em /Ze mas não em /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
}
Se você usar /Zc:forScope-, você receberá um aviso (desativado por padrão) se uma variável está no escopo por causa de uma declaração que foi feita em um escopo anterior. Para demonstrar isso, remova o // caracteres no código acima para declarar int i.
Você pode modificar o comportamento de tempo de execução de /Zc:forScope com o conform pragma.
Se você usar /Zc:forScope- em um projeto com um arquivo existente do .pch, /Zc:forScope- será ignorado (com um aviso) e compilação continua com arquivos existentes do .pch. Se desejar que um novo arquivo de .pch gerado, use /Yc (criar arquivo de cabeçalho pré-compilado).
Para obter mais informações sobre questões de conformidade com o Visual C++, consulte Compatibility and Compliance Issues in Visual C++.
Para definir esta opção de compilador no ambiente de desenvolvimento Visual Studio
Abra o projeto Property Pages caixa de diálogo. Para obter detalhes, consulte:Modificando Configurações do Projeto.
Clique o C/C++ pasta.
Clique o idioma página de propriedades.
Modificar o Conformidade de força no escopo de Loop para propriedade.
Para definir esta opção de compilador programaticamente
- Consulte ForceConformanceInForLoopScope.