/Zc:forScope (Force Conformance in for Loop Scope)
Used to implement standard C++ behavior for for loops with Microsoft extensions (/Ze).
Syntax
/Zc:forScope[-]
Remarks
Standard behavior is to let a for
loop's initializer go out of scope after the for
loop. Under /Zc:forScope- and /Ze, the for
loop's initializer remains in scope until the local scope ends.
The /Zc:forScope option is on by default. /Zc:forScope is not affected when the /permissive- option is specified.
The /Zc:forScope- option is deprecated and will be removed in a future release. Use of /Zc:forScope- generates deprecation warning D9035.
The following code compiles under /Ze but not under /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
}
If you use /Zc:forScope-, warning C4288 (off by default) is generated if a variable is in scope because of a declaration that was made in a previous scope. To demonstrate this, remove the //
characters in the example code to declare int i
.
You can modify the run-time behavior of /Zc:forScope by using the conform pragma.
If you use /Zc:forScope- in a project that has an existing .pch file, a warning is generated, /Zc:forScope- is ignored, and compilation continues by using the existing .pch files. If you want a new .pch file generated, use /Yc (Create Precompiled Header File).
For more information about conformance issues in Visual C++, see Nonstandard Behavior.
To set this compiler option in the Visual Studio development environment
Open the project's Property Pages dialog box. For details, see Set C++ compiler and build properties in Visual Studio.
Select the Configuration Properties > C/C++ > Language property page.
Modify the Force Conformance in For Loop Scope property.
To set this compiler option programmatically
See also
Phản hồi
https://aka.ms/ContentUserFeedback.
Sắp ra mắt: Trong năm 2024, chúng tôi sẽ dần gỡ bỏ Sự cố với GitHub dưới dạng cơ chế phản hồi cho nội dung và thay thế bằng hệ thống phản hồi mới. Để biết thêm thông tin, hãy xem:Gửi và xem ý kiến phản hồi dành cho