# Zc

Lets you specify ANSI C standard conformance for certain language features.

## Syntax

Linux: | None

Windows: | /Zc:arg1[,arg2]

## Arguments

arg | Is the language feature for which you want standard conformance. The settings are compatible with Microsoft* settings for option /Zc. For a list of supported settings, see the table in the Description section of this topic.

## Default

varies | See the table in the Description section of this topic.

## Description

This option lets you specify ANSI C standard conformance for certain language features.

If you do not want the default behavior for one or more of the settings, you must specify the negative form of the setting. For example, if you do not want the threadSafeInit or sizedDealloc default behavior, you should specify /Zc:threadSafeInit-,sizedDealloc-.

The following table shows the supported Microsoft settings for option /Zc.

/Zc setting name | Description
--- | ---
alignedNew[-] | Enables C++17 aligned allocation functions (default for C++17). Disabled by /Zc:alignedNew-.
char8_t[-] | Enables char8_t from C++2a. Disabled by /Zc:char8_t- (default).
dllexportInlines[-] | Enables dllexport/dllimport inline member functions of dllexport/import classes (default). Disabled by /Zc:dllexportInlines-.
sizedDealloc[-] | Enables C++14 sized global deallocation functions (default). Disabled by /Zc:sizedDealloc-
strictStrings[-] | Enforces const qualification for string literals. Disabled by /Zc:strictStrings- (default).
threadSafeInit[-] | Enables thread-safe initialization of local statics (default). Disabled by /Zc:threadSafeInit-.
trigraphs[-] | Enables trigraph character sequences. Disabled by /Zc:trigraphs- (default).
twoPhase[-] | Enables two-phase name lookup in templates. Disabled by /Zc:twoPhase- (default).

## IDE Equivalent

Visual Studio: Language > Treat wchar_t as Built-in Type / Force Conformance In For Loop Scope

Language > Enforce type conversion rules (rvalueCast)

Eclipse: None

## Alternate Options

None

Parent topic: Language Options