You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update zc-conformance.md for accuracy and consistency
Changes assume accuracy of the individual option doc pages
* Update default values per individual option docs
* Use consistent wording and formatting for default values
* Mention [-] syntax where applicable
Copy file name to clipboardExpand all lines: docs/build/reference/zc-conformance.md
+26-26Lines changed: 26 additions & 26 deletions
Original file line number
Diff line number
Diff line change
@@ -22,36 +22,36 @@ Here are the **`/Zc`** compiler options:
22
22
23
23
| Option | Behavior |
24
24
|--|--|
25
-
|[`/Zc:__cplusplus`](zc-cplusplus.md)| Enable the `__cplusplus` macro to report the supported standard (off by default). |
25
+
|[`/Zc:__cplusplus[-]`](zc-cplusplus.md)| Enable the `__cplusplus` macro to report the supported standard (off by default). |
26
26
|[`/Zc:__STDC__`](zc-stdc.md)| Enable the `__STDC__` macro to report the C standard is supported (off by default). |
27
-
|[`/Zc:alignedNew`](zc-alignednew.md)| Enable C++17 over-aligned dynamic allocation (on by default in C++17). |
28
-
|[`/Zc:auto`](zc-auto-deduce-variable-type.md)| Enforce the new Standard C++ meaning for **`auto`** (on by default). |
29
-
|[`/Zc:char8_t`](zc-char8-t.md)| Enable or disable C++20 native `u8` literal support as `const char8_t` (off by default, except under **`/std:c++20`**). |
27
+
|[`/Zc:alignedNew[-]`](zc-alignednew.md)| Enable C++17 over-aligned dynamic allocation (off by default, except under **`/std:c++17`** or later). |
28
+
|[`/Zc:auto[-]`](zc-auto-deduce-variable-type.md)| Enforce the new Standard C++ meaning for **`auto`** (on by default). |
29
+
|[`/Zc:char8_t[-]`](zc-char8-t.md)| Enable or disable C++20 native `u8` literal support as `const char8_t` (off by default, except under **`/std:c++20`** or later). |
30
30
|[`/Zc:enumTypes[-]`](zc-enumtypes.md)| Enable Standard C++ rules for `enum` type deduction (off by default). |
31
-
|[`/Zc:externC`](zc-externc.md)| Enforce Standard C++ rules for `extern "C"` functions (implied by **`/permissive-`**). |
32
-
|[`/Zc:externConstexpr`](zc-externconstexpr.md)| Enable external linkage for **`constexpr`** variables (off by default). |
33
-
|[`/Zc:forScope`](zc-forscope-force-conformance-in-for-loop-scope.md)| Enforce Standard C++ **`for`** scoping rules (on by default). |
34
-
|[`/Zc:gotoScope`](zc-gotoscope.md)| Enforce Standard C++ **`goto`** rules around local variable initialization (implied by **`/permissive-`**). |
35
-
|[`/Zc:hiddenFriend`](zc-hiddenfriend.md)| Enforce Standard C++ hidden friend rules (implied by **`/permissive-`**) |
36
-
|[`/Zc:implicitNoexcept`](zc-implicitnoexcept-implicit-exception-specifiers.md)| Enable implicit **`noexcept`** on required functions (on by default). |
37
-
|[`/Zc:inline`](zc-inline-remove-unreferenced-comdat.md)| Remove unreferenced functions or data if they're COMDAT or have internal linkage only (off by default). |
38
-
|[`/Zc:lambda`](zc-lambda.md)| Enable new lambda processor for conformance-mode syntactic checks in generic lambdas. |
39
-
|[`/Zc:noexceptTypes`](zc-noexcepttypes.md)| Enforce C++17 **`noexcept`** rules (on by default in C++17 or later). |
40
-
|[`/Zc:nrvo[-]`](zc-nrvo.md)| Enable optional copy and move elisions (on by default under **`/O2`**, **`/permissive-`**, or **`/std:c++20`** or later). |
41
-
|[`/Zc:preprocessor`](zc-preprocessor.md)| Use the new conforming preprocessor (off by default, except in C11/C17). |
42
-
|[`/Zc:referenceBinding`](zc-referencebinding-enforce-reference-binding-rules.md)| A UDT temporary won't bind to a non-const lvalue reference (off by default). |
43
-
|[`/Zc:rvalueCast`](zc-rvaluecast-enforce-type-conversion-rules.md)| Enforce Standard C++ explicit type conversion rules (off by default). |
44
-
|[`/Zc:sizedDealloc`](zc-sizeddealloc-enable-global-sized-dealloc-functions.md)| Enable C++14 global sized deallocation functions (on by default). |
45
-
|[`/Zc:strictStrings`](zc-strictstrings-disable-string-literal-type-conversion.md)| Disable string-literal to `char*` or `wchar_t*` conversion (off by default). |
46
-
|[`/Zc:static_assert`](zc-static-assert.md)| strict handling of `static_assert` (implied by **`/permissive-`**). |
31
+
|[`/Zc:externC[-]`](zc-externc.md)| Enforce Standard C++ rules for `extern "C"` functions (off by default, except under**`/permissive-`**). |
32
+
|[`/Zc:externConstexpr[-]`](zc-externconstexpr.md)| Enable external linkage for **`constexpr`** variables (off by default). |
33
+
|[`/Zc:forScope[-]`](zc-forscope-force-conformance-in-for-loop-scope.md)| Enforce Standard C++ **`for`** scoping rules (on by default). |
34
+
|[`/Zc:gotoScope[-]`](zc-gotoscope.md)| Enforce Standard C++ **`goto`** rules around local variable initialization (off by default, except under**`/permissive-`**). |
35
+
|[`/Zc:hiddenFriend[-]`](zc-hiddenfriend.md)| Enforce Standard C++ hidden friend rules (off by default, except under**`/permissive-`**) |
36
+
|[`/Zc:implicitNoexcept[-]`](zc-implicitnoexcept-implicit-exception-specifiers.md)| Enable implicit **`noexcept`** on required functions (on by default). |
37
+
|[`/Zc:inline[-]`](zc-inline-remove-unreferenced-comdat.md)| Remove unreferenced functions or data if they're COMDAT or have internal linkage only (off by default). |
38
+
|[`/Zc:lambda[-]`](zc-lambda.md)| Enable new lambda processor for conformance-mode syntactic checks in generic lambdas (off by default, except under **`/std:c++20`** or later). |
39
+
|[`/Zc:noexceptTypes[-]`](zc-noexcepttypes.md)| Enforce C++17 **`noexcept`** rules (off by default, except under **`/std:c++17`** or later). |
40
+
|[`/Zc:nrvo[-]`](zc-nrvo.md)| Enable optional copy and move elisions (off by default, except under **`/O2`**, **`/permissive-`**, or **`/std:c++20`** or later). |
41
+
|[`/Zc:preprocessor[-]`](zc-preprocessor.md)| Use the new conforming preprocessor (off by default, except under **`/std:c11`** or later). |
42
+
|[`/Zc:referenceBinding[-]`](zc-referencebinding-enforce-reference-binding-rules.md)| A UDT temporary won't bind to a non-const lvalue reference (off by default, except under **`/permissive-`**). |
43
+
|[`/Zc:rvalueCast[-]`](zc-rvaluecast-enforce-type-conversion-rules.md)| Enforce Standard C++ explicit type conversion rules (off by default, except under **`/permissive-`**). |
44
+
|[`/Zc:sizedDealloc[-]`](zc-sizeddealloc-enable-global-sized-dealloc-functions.md)| Enable C++14 global sized deallocation functions (on by default). |
45
+
|[`/Zc:strictStrings[-]`](zc-strictstrings-disable-string-literal-type-conversion.md)| Disable string-literal to `char*` or `wchar_t*` conversion (off by default, except under **`/permissive-`**). |
46
+
|[`/Zc:static_assert[-]`](zc-static-assert.md)| strict handling of `static_assert` (off by default, except under**`/permissive-`**). |
47
47
|[`/Zc:templateScope[-]`](zc-templatescope.md)| Enforce Standard C++ template parameter shadowing rules (off by default). |
48
-
|[`/Zc:ternary`](zc-ternary.md)| Enforce conditional operator rules on operand types (off by default). |
49
-
|[`/Zc:threadSafeInit`](zc-threadsafeinit-thread-safe-local-static-initialization.md)| Enable thread-safe local static initialization (on by default). |
50
-
|[`/Zc:throwingNew`](zc-throwingnew-assume-operator-new-throws.md)| Assume **`operator new`** throws on failure (off by default). |
48
+
|[`/Zc:ternary[-]`](zc-ternary.md)| Enforce conditional operator rules on operand types (off by default, except under **`/permissive-`**). |
49
+
|[`/Zc:threadSafeInit[-]`](zc-threadsafeinit-thread-safe-local-static-initialization.md)| Enable thread-safe local static initialization (on by default). |
50
+
|[`/Zc:throwingNew[-]`](zc-throwingnew-assume-operator-new-throws.md)| Assume **`operator new`** throws on failure (off by default). |
51
51
|[`/Zc:tlsGuards[-]`](zc-tlsguards.md)| Generate runtime checks for TLS variable initialization (on by default). |
52
-
|[`/Zc:trigraphs`](zc-trigraphs-trigraphs-substitution.md)| Enable trigraphs (obsolete, off by default). |
53
-
|[`/Zc:twoPhase`](zc-twophase.md)| Use non-conforming template parsing behavior (conforming by default). |
54
-
|[`/Zc:wchar_t`](zc-wchar-t-wchar-t-is-native-type.md)|**`wchar_t`** is a native type, not a typedef (on by default). |
52
+
|[`/Zc:trigraphs[-]`](zc-trigraphs-trigraphs-substitution.md)| Enable trigraphs (obsolete, off by default). |
53
+
|[`/Zc:twoPhase-`](zc-twophase.md)| Use non-conforming template parsing behavior (only applicable under **`/permissive-`**, which defaults to conforming). |
54
+
|[`/Zc:wchar_t[-]`](zc-wchar-t-wchar-t-is-native-type.md)|**`wchar_t`** is a native type, not a typedef (on by default). |
55
55
|[`/Zc:zeroSizeArrayNew[-]`](zc-zerosizearraynew.md)| Call member `new`/`delete` for 0-size arrays of objects (on by default). |
56
56
57
57
For more information about conformance issues in MSVC, see [Nonstandard behavior](../../cpp/nonstandard-behavior.md).
0 commit comments