/ZC:forScope (forçar conformidade no escopo de loop for)
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 inicializador do loop ir fora do escopo após a for loop.Em / Za, /Ze (extensões de linguagem Disable), o for inicializador do loop permanece no escopo até que o escopo local termina.
O código a seguir serão compilados 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 do /Zc:forScope com o está de acordo com 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 os arquivos de .pch existentes.Se você quiser 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 Compatibilidade e questões de compatibilidade em Visual C++.
Para definir esta opção de compilador no ambiente de desenvolvimento Visual Studio
Abra o projeto Páginas de propriedades caixa de diálogo.Para obter detalhes, consulte:Modificando as configurações de projeto.
Clique no C/C++ pasta.
Clique no idioma página de propriedades.
Modificar o Forçar conformidade no escopo de Loop para propriedade.
Para definir essa opção de compilador programaticamente
- Consulte ForceConformanceInForLoopScope.