/Zc:forScope (Vynutit dodržování standardu pro obor cyklu for)
Používá se k implementaci standardního chování jazyka C++ pro smyčky s rozšířeními Microsoftu (/Ze).
Syntaxe
/Zc:forScope[-]
Poznámky
Standardním chováním je nechat for
inicializátor smyčky po smyčce for
mimo rozsah. V části /Zc:forScope- a /Ze zůstane inicializátor smyčky v oboru, for
dokud místní obor nekončí.
Možnost /Zc:forScope je ve výchozím nastavení zapnutá. /Zc:forScope není ovlivněn při zadání parametru /permissive- .
Možnost /Zc:forScope- je zastaralá a bude odebrána v budoucí verzi. Použití / Zc:forScope- generuje upozornění na vyřazení D9035.
Následující kód se zkompiluje v /Ze , ale ne v / 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
}
Pokud použijete /Zc:forScope-, vygeneruje se upozornění C4288 (ve výchozím nastavení vypnuto), pokud je proměnná v oboru kvůli deklaraci, která byla provedena v předchozím oboru. Chcete-li to předvést, odeberte //
znaky v ukázkovém kódu deklarovat int i
.
Chování za běhu parametru /Zc:forScope můžete upravit pomocí direktivy pragma.
Pokud použijete /Zc:forScope- v projektu, který má existující soubor .pch, vygeneruje se upozornění /Zc:forScope- a kompilace pokračuje pomocí existujících souborů .pch. Pokud chcete vygenerovat nový soubor .pch, použijte /Yc (vytvořit předkompilovaný hlavičkový soubor).
Další informace o problémech s shodami v jazyce Visual C++ naleznete v tématu Nestandardní chování.
Nastavení tohoto parametru kompilátoru ve vývojovém prostředí Visual Studio
Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.
Vyberte stránku vlastností jazyka C/C++>Vlastnosti>konfigurace.
Upravte vynutit shodu ve vlastnosti Rozsah smyčky.
Programové nastavení tohoto parametru kompilátoru
- Viz třída ForceConformanceInForLoopScope.