/Za, /Ze (Disable Language Extensions)
The latest version of this topic can be found at -Za, -Ze (Disable Language Extensions).
The /Za compiler option emits an error for language constructs that are not compatible with ANSI C89 or ISO C++11. The /Ze compiler option, which is on by default, enables Microsoft extensions.
Syntax
/Za
/Ze
Remarks
Note
The /Ze option is deprecated because its behavior is on by default. We recommend you use the /Zc (Conformance) compiler options to control specific language extension features. For a list of deprecated compiler options, see the Deprecated and Removed Compiler Options section in Compiler Options Listed by Category.
The Visual C++ compiler offers a number of features beyond those specified in either the ANSI C89, ISO C99, or ISO C++ standards. These features are known collectively as Microsoft extensions to C and C++. These extensions are available by default, and not available when the /Za option is specified. For more information about specific extensions, see Microsoft Extensions to C and C++.
We recommend that you disable language extensions by specifying the /Za option if you plan to port your program to other environments. When /Za is specified, the compiler treats Microsoft extended keywords as simple identifiers, disables the other Microsoft extensions, and automatically defines the __STDC__
predefined macro for C programs.
Other compiler options used with /Za can affect how the compiler ensures standards conformance. For example, /Za and /fp (Specify Floating-Point Behavior) may result in floating-point type promotion behavior that does not conform to the ISO C99 or C++11 standards.
For ways to specify specific standards-conformant behavior settings, see the /Zc compiler option.
For more information about conformance issues with 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 How to: Open Project Property Pages.
In the navigation pane, choose Configuration Properties, C/C++, Language.
Modify the Disable Language Extensions property.