Skip to content

Commit 6986944

Browse files
TaojunshenColin RobertsonTylerMSFTwmcnamaraTylerMSFT
authored
11/5/2021 AM Publish (#3882)
* draft * updates * draft content * Change incorrect link for logical AND This commit changes the link for logical AND from incorrectly linking to the bitwise AND to the correct logical AND. * draft * acrolinx and add to toc * rename existing file back to original filename * tech review * fix code sample (#3676) * fix code sample * acrolinx Co-authored-by: TylerMSFT <[email protected]> * Update fsanitize.md * Add mention in asan-building and add fsanitize-coverage options. * Expand /fsanitize=fuzzer description. Unify table format used on page. * Reference fsanitize-coverage.md in toc + full option lists. * Fix warnings * every relevant edge * Add OneFuzz mention * Fix mistaken deletion in chrono.md * Fpcontract docs (#3691) * Update fp-specify-floating-point-behavior.md Add details on /fp:contract flag * Update float-control.md Update float_control pragma behavior with respect to contractions. * small update * Update fenv-access.md * Update fp-contract.md * Update predefined-macros.md * fix typo and PR comments * leave definition of contractions * Add /fp:contract to the main list * fix line break * Add link to fp:contract * Add reference to fp:contract * Call out changes by compiler version. Co-authored-by: [email protected] <[email protected]> * Edit pass for i18n, grammar, and style * Respond to feedback * Add LibFuzzer link, consistency fixes * add new classes: ambiguous_local_time & nonexistent_local_time * acrolinx * fix links * finish descriptions * fix more links * smoothing out * proofing * add some better linking * tune description * update descriptions * needed to update local-info-struct.md to reflect changes to descriptions for nonexistent and ambiguous * add chrono functions * rounding out duration links * Add documentation for IntelliSense linter for C++ (#3821) * Add first draft of linter check documentation * WIP overview. Signed-off-by: Kyle Reed <[email protected]> * Update toc. First draft of the linter overview. * Add screenshots, move files, code samples are stand-alone. Signed-off-by: Kyle Reed <[email protected]> * Style and Acrolinx grammar checker pass * Add missing Options cues for checks * Update to use latest option names Co-authored-by: [email protected] <[email protected]> * connecting duration up to it's non-member pieces and doing some general updates * fix links * cleanup * Split out VS2019 content for linter (#3824) * Update working-with-project-properties.md * cleanup * cleanup * cleanup * cleanup * cleanup * cleanup * cleanup * fix function signature * fix line ending * remove duplicate * Address /profile issues per Paddy McD (#3834) * Fixed documentation that destroy dialogs * Update void-cpp for cpp-docs 3441 Reported in MicrosoftDocs/cpp-docs/issues/3441 Clarify kinds of class member where you can't use `void*`. Fix styles. Acrolinx a few things. * More clarity on void pointers to members * zoned_traits (#3831) * add zoned_traits * draft clock_cast and clock_time_conversion * first draft * draft * draft * fix heading * cleanup * add tzdb and tzdb-list * draft * draft * pull examples * draft cleanup * acrolinx * draft cleanup * draft cleanup * incorp tech review * tech review * cleanup * cleanup * acrolinx * fix casing * add example descriptions * wording * last adjustments * wording Co-authored-by: TylerMSFT <[email protected]> * Update 16.1 conformance per J Emmett * Update docs/error-messages/compiler-errors-2/compiler-error-c2666.md * draft * acrolinx, links * links * Fix typo in page title * acrolinx * fix link * Fix TOC schema before VS2022 changes * cleanup the port * add additional info * Address 3449 typo in /analyze * update see also * Address 3462 add C5033 warning * Include link update * Typo * Add TOC entry * Update how-to-marshal-callbacks-and-delegates-by-using-cpp-interop.md typo: underlaying -> underlying * Fix typo in toc for tzdb_list * fix github issue #3469 (#3852) Co-authored-by: TylerMSFT <[email protected]> * remove constexpr, prevent machine translation of code elements, and bring closer to current doc style (#3854) * remove constexpr * add remark * acrolinx * update casing * cleanup Co-authored-by: TylerMSFT <[email protected]> * VS2022 update for what's new content * Acrolinx update * Fix validation, links, typos * Revert a styling quirk on headers * Validation error fix * Acrolinx and validation fixes * Conformance fix updates * Adding missing intrinsic. * Fix intrinsic signature. * Fix wrong argument type. * Add headers, requirements * VS2022 features, C17, walkthroughs (#3863) * VS2022 features, C17, walkthroughs * fix indentation to correct list step numbering * fix indentation to correct list step numbering * replace numbers with bold headings Co-authored-by: Beth Harvey <[email protected]> * tech review feedback * cleanup * Frontrun bulk fixes for VS2022 * Fixes #3484 * Docs/corob/cpp docs 3481 d8049 (#3865) * Add D8049 error message * Acrolinx tweak * Update toc.yml fix apparent typo in TOC Co-authored-by: Jeff Borsecnik <[email protected]> * More VS2022 non-bulk fixes. (#3867) * Bulk update VS2022 content (#3860) * Bulk fix to update msvc-160 and msvc-170 * Fix stray moniker tags * incorp review * update wording around closing the folder * typos * fix typo introduced while fixing typos... * update formatting * update steps and formatting * Update working-with-resource-files.md * Update symbols-resource-identifiers.md * Update how-to-create-a-resource-script-file.md If you right click on a class you can't add resources. You should right click on a project. * started draft of STL conformance items * Update CMake landing page (#3864) * intro, installation, configure * config notifications * IDE integration * Building CMake projects * Debugging CMake projects * Open an existing cache * Edit CMakeLists.txt files * Configure IntelliSense * Troubleshooting, repro from CLI * Switch 17/19 CLI sections * edits * Fix code block * more edits * move images from docs/media to docs/build/media * Address feedback * Fix link style * Final edits * fix spelling per Acrolinx Co-authored-by: Beth Harvey <[email protected]> * finished first cut at VS 2022 17.0 STL conformance updates * Broken link fixed * move lwg-3518 to a c++11 section * De-emphasize codeplex archive * Add gray border (#3876) * tech review * remove LWG-* entries * Correct or remove links: validation issues Co-authored-by: Colin Robertson <[email protected]> Co-authored-by: TylerMSFT <[email protected]> Co-authored-by: Weston McNamara <[email protected]> Co-authored-by: Tyler Whitney <[email protected]> Co-authored-by: Steve Wishnousky <[email protected]> Co-authored-by: Gautham Beeraka <[email protected]> Co-authored-by: Kyle Reed <[email protected]> Co-authored-by: Chai Wei Jie <[email protected]> Co-authored-by: opbld15 <[email protected]> Co-authored-by: PRMerger19 <[email protected]> Co-authored-by: Laura Brenner <[email protected]> Co-authored-by: Courtney Wales <[email protected]> Co-authored-by: Andrea Courtright <[email protected]> Co-authored-by: PRMerger15 <[email protected]> Co-authored-by: opbld16 <[email protected]> Co-authored-by: PRMerger8 <[email protected]> Co-authored-by: Anju Del Moral Gonzalez <[email protected]> Co-authored-by: opbld17 <[email protected]> Co-authored-by: Miya Natsuhara <[email protected]> Co-authored-by: Kristine Toliver <[email protected]> Co-authored-by: PRMerger7 <[email protected]> Co-authored-by: Avraham <[email protected]> Co-authored-by: Paula Miller <[email protected]> Co-authored-by: Jose Rivero <[email protected]> Co-authored-by: Beth Harvey <[email protected]> Co-authored-by: PRMerger5 <[email protected]> Co-authored-by: Red Team Rover <[email protected]> Co-authored-by: Jeff Borsecnik <[email protected]> Co-authored-by: mohammad-ghasemi-2549 <[email protected]> Co-authored-by: Erika <[email protected]> Co-authored-by: Atik Mapari (Lionbridge Technologies Inc) <[email protected]> Co-authored-by: PRMerger Service account 2 <[email protected]> Co-authored-by: PRMerger4 <[email protected]>
1 parent 33e7144 commit 6986944

File tree

2 files changed

+37
-13
lines changed

2 files changed

+37
-13
lines changed

docs/overview/visual-cpp-language-conformance.md

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Microsoft C/C++ language conformance"
33
description: "Microsoft C and C++ conformance updates by Visual Studio version."
4-
ms.date: 10/22/2021
4+
ms.date: 11/02/2021
55
ms.technology: "cpp-language"
66
---
77
# Microsoft C/C++ language conformance by Visual Studio version
@@ -31,7 +31,7 @@ For details on conformance improvements, see [C++ conformance improvements in Vi
3131
| &emsp;[`N3760 [[deprecated]] attribute`](https://wg21.link/n3760) | VS 2015 |
3232
| &emsp;[`N3778 Sized deallocation`](https://wg21.link/n3778) | VS 2015 |
3333
| &emsp;[`N3781 Digit separators`](https://wg21.link/n3781) | VS 2015 |
34-
| &emsp;[`N3651 Variable templates`](https://wg21.link/n3651) | VS 2015.2 |
34+
| &emsp;[`N3651 Variable templates`](https://wg21.link/n3651) | VS 2015 Update 2 |
3535
| &emsp;[`N3652 Extended constexpr`](https://wg21.link/n3652) | VS 2017 15.0 |
3636
| &emsp;[`N3653 Default member initializers for aggregates`](https://wg21.link/n3653) | VS 2017 15.0 |
3737
| __C++17 Core language features__ | __Supported__ |
@@ -208,7 +208,6 @@ A more detailed listing of Standard Library features and bug fixes by product ve
208208
| &emsp;[`N3655 Alias Templates For <type_traits> (decay_t, etc.)`](https://wg21.link/n3655) | VS 2013 |
209209
| &emsp;[`N3656 make_unique()`](https://wg21.link/n3656) | VS 2013 |
210210
| __C++17 Standard library features__ | __Supported__ |
211-
| &emsp;[`LWG 2221 Formatted output operator for nullptr`](https://cplusplus.github.io/LWG/issue2221) | VS 2019 16.1 |
212211
| &emsp;[`N3911 void_t`](https://wg21.link/n3911) | VS 2015 <sup>[14](#note_14)</sup> |
213212
| &emsp;[`N4089 Safe Conversions In unique_ptr<T[]>`](https://wg21.link/n4089) | VS 2015 <sup>[14](#note_14)</sup> |
214213
| &emsp;[`N4169 invoke()`](https://wg21.link/n4169) | VS 2015 <sup>[14](#note_14)</sup> |
@@ -290,7 +289,9 @@ A more detailed listing of Standard Library features and bug fixes by product ve
290289
| &emsp;[`P0607R0 Inline Variables for the Standard Library`](https://wg21.link/p0607r0) | VS 2017 15.5 <sup>[17](#note_17)</sup> |
291290
| &emsp;[`P0618R0 Deprecating <codecvt>`](https://wg21.link/p0618r0) | VS 2017 15.5 <sup>[17](#note_17)</sup> |
292291
| &emsp;[`P0682R1 Repairing Elementary String Conversions`](https://wg21.link/P0682R1) | VS 2015 15.7 <sup>[17](#note_17)</sup> |
292+
| &emsp;[`P2162R2 Inheriting from std::variant`](https://wg21.link/P2162R2) | VS 2022 17.0 <sup>[17](#note_17)</sup> |
293293
| __C++20 Standard library features__ | __Supported__ |
294+
| VS 2022 17.0 <sup>[20abi](#note_20abi)</sup>|
294295
| &emsp;[`P0809R0 Comparing Unordered Containers`](https://wg21.link/p0809r0) | VS 2010 <sup>[14](#note_14)</sup> |
295296
| &emsp;[`P0858R0 Constexpr Iterator Requirements`](https://wg21.link/p0858r0) | VS 2017 15.3 <sup>[17](#note_17)</sup> |
296297
| &emsp;[`P0777R1 Avoiding Unnecessary Decay`](https://wg21.link/p0777r1) | VS 2017 15.7 <sup>[14](#note_14)</sup> |
@@ -388,19 +389,29 @@ A more detailed listing of Standard Library features and bug fixes by product ve
388389
| &emsp;[`P0645R10 <format> Text Formatting`](https://wg21.link/p0645r10) | VS 2019 16.10 <sup>[20abi](#note_20abi)</sup> |
389390
| &emsp;[`P0784R7 Library support for more constexpr containers`](https://wg21.link/P0784R7) | VS 2019 16.10 <sup>[20](#note_20)</sup> |
390391
| &emsp;[`P0896R4 <ranges>`](https://wg21.link/P0896R4) | VS 2019 16.10 <sup>[20abi](#note_20abi)</sup> |
391-
| &emsp;[`P0980R1 constexpr std::string`](https://wg21.link/P0980R1) | VS 2019 16.10 <sup>[20](#note_20)</sup> |
392-
| &emsp;[`P1004R2 constexpr std::vector`](https://wg21.link/P1004R2) | VS 2019 16.10 <sup>[20](#note_20)</sup> |
392+
| &emsp;[`P0980R1 constexpr std::string`](https://wg21.link/P0980R1) | VS 2019 16.10 <sup>[20](#note_20), [P](#note_P)</sup> |
393+
| &emsp;[`P1004R2 constexpr std::vector`](https://wg21.link/P1004R2) | VS 2019 16.10 <sup>[20](#note_20), [P](#note_P)</sup> |
393394
| &emsp;[`P1208R6 <source_location>`](https://wg21.link/P1208R6) | VS 2019 16.10 <sup>[20](#note_20)</sup> |
394395
| &emsp;[`P1502R1 Standard Library Header Units`](https://wg21.link/P1502R1) | VS 2019 16.10 <sup>[20](#note_20)</sup> |
395396
| &emsp;[`P1614R2 Adding Spaceship <=> To The Library`](https://wg21.link/P1614R2) | VS 2019 16.10 <sup>[20](#note_20)</sup> |
396397
| &emsp;[`P1285R0 Improving Completeness Requirements For Type Traits`](https://wg21.link/P1285R0) | N/A |
398+
| __C++20 Standard library features (Defect reports)__ | __Supported__ |
399+
| &emsp;[`P2325R3 Views Should Not Be Required To Be Default Constructible`](https://wg21.link/P2325r3) | VS 2022 17.0 <sup>[20abi](#note_20abi)</sup> |
400+
| &emsp;[`P2328R1 join_view should join all views of ranges`](https://wg21.link/P2328R1) | VS 2022 17.0 <sup>[20abi](#note_20abi)</sup> |
401+
| &emsp;[`P2367R0 Remove misuses of list-initialization from clause 24 ranges`](https://wg21.link/P2367R0) | VS 202 17.0 <sup>[20abi](#note_20abi)</sup> |
397402
| __C++23 Standard library features__ | __Supported__ |
403+
| &emsp;[`P0401R6 Providing size feedback in the allocator interface`](https://wg21.link/P0401R6) | VS 2022 17.0 <sup>[23](#note_23)</sup> |
398404
| &emsp;[`P0881R7 <stacktrace>`](https://wg21.link/p0881r7) | No |
399-
| &emsp;[`P0943R6 Supporting C Atomics In C++`](https://wg21.link/P0943R6) | No |
400-
| &emsp;[`P1048R1 is_scoped_enum`](https://wg21.link/P1048R1) | No |
401-
| &emsp;[`P1679R3 contains() For basic_string/basic_string_view`](https://wg21.link/P1679R3) | No |
402-
| &emsp;[`P1682R3 to_underlying() For Enumerations`](https://wg21.link/P1682R3) | No |
403-
| &emsp;[`P2162R2 Inheriting From variant`](https://wg21.link/P2162R2) | No |
405+
| &emsp;[`P0943R6 Supporting C Atomics In C++`](https://wg21.link/P0943R6) | VS 2022 17.0 <sup>[T](#note_T)</sup> |
406+
| &emsp;[`P1048R1 is_scoped_enum`](https://wg21.link/P1048R1) | VS 2022 17.0 <sup>[23](#note_23)</sup> |
407+
| &emsp;[`P1132R7 out_ptr(), inout_ptr()`](https://wg21.link/P1132R7) | VS 2022 17.0 <sup>[23](#note_23)</sup> |
408+
| &emsp;[`P1679R3 contains() for basic_string/basic_string_view`](https://wg21.link/P1679R3) | VS 2022 17.0 <sup>[23](#note_23)</sup> |
409+
| &emsp;[`P1682R3 to_underlying() for enumerations`](https://wg21.link/P1682R3) | VS 2022 17.0 <sup>[23](#note_23)</sup> |
410+
| &emsp;[`P1951R1 Default template arguments for pair's forwarding constructor`](https://wg21.link/P1951R1) | VS 2022 17.0 <sup>[23](#note_23)</sup> |
411+
| &emsp;[`P1989R2 Range Constructor For string_view`](https://wg21.link/P1989R2) | VS 2022 17.0 <sup>[23](#note_23)</sup> |
412+
| &emsp;[`P2166R1 Prohibit basic_string and basic_string_view from being constructed from nullptr`](https://wg21.link/P2166R1) | VS 2022 17.0 <sup>[23](#note_23), [R](#note_R)</sup> |
413+
| &emsp;[`P2186R2 Removed garbage collection support`](https://wg21.link/P2186R2) | VS 2022 17.0 <sup>[23](#note_23), [Q](#note_Q)</sup> |
414+
| &emsp;[`P2259R1 Partial LWG issue resolution: repairing Input Range Adaptors and counted_iterator`](https://wg21.link/P2259R1) | VS 2022 17.0 <sup>[23](#note_23), [S](#note_S)</sup> |
404415

405416
A group of papers listed together indicates a Standard feature along with one or more approved improvements or expansions. These features are implemented together.
406417

@@ -463,7 +474,8 @@ __VS 2019 16.6__ Supported in Visual Studio 2019 version 16.6.\
463474
__VS 2019 16.7__ Supported in Visual Studio 2019 version 16.7.\
464475
__VS 2019 16.8__ Supported in Visual Studio 2019 version 16.8.\
465476
__VS 2019 16.9__ Supported in Visual Studio 2019 version 16.9.\
466-
__VS 2019 16.10__ Supported in Visual Studio 2019 version 16.10.
477+
__VS 2019 16.10__ Supported in Visual Studio 2019 version 16.10.\
478+
__VS 2020 17.0__ Supported in Visual Studio 2020 version 17.0.
467479

468480
### Notes
469481

@@ -514,6 +526,16 @@ These algorithms aren't presently parallelized:
514526

515527
<a name="note_O"></a> __O__ Certain bounds-checking functions are unimplemented, or have different signatures, or aren't part of the C11 or C17 standard. These functions are unimplemented: `abort_handler_s`, `ignore_handler_s`, `memset_s`, `set_constraint_handler_s`, `snprintf_s`, `snwprintf_s`, `strerrorlen_s`, `vsnwprintf_s`. These functions have different signatures: `gmtime_s`, `localtime_s`, `qsort_s`, `strtok_s`, `vsnprintf_s`, `wcstok_s`. These functions don't appear in the standard: `clearerr_s`, `fread_s`.
516528

529+
<a name="note_P"></a> __P__ Support was added in VS 2019 16.10. Support for Clang was added in VS 2022 17.0.
530+
531+
<a name="note_Q"></a> __Q__ This removes `declare_reachable`, `undeclare_reachable`, `declare_no_pointers`, `undeclare_no_pointers`, `get_pointer_safety`. Previously, these functions had no effect.
532+
533+
<a name="note_R"></a> __R__ This is a common **source-breaking** change. However, code that previously had undefined behavior at runtime will now be rejected with compiler errors.
534+
535+
<a name="note_S"></a> __S__ The `counted_iterator` part is implemented; the input range adaptors part isn't yet implemented.
536+
537+
<a name="note_T"></a> __T__ `<stdatomic.h>` is currently supported when compiling as C++ (`/std:c++latest`). It isn't yet supported when compiling as C (`/std:c11` and `/std:c17`)
538+
517539
<a name="note_14"></a> __14__ These C++17 and C++20 features are always enabled, even when [`/std:c++14`](../build/reference/std-specify-language-standard-version.md) (the default) is specified. The reason is either because the feature was implemented before the introduction of the **`/std`** options, or because conditional implementation was undesirably complex.
518540

519541
<a name="note_17"></a> __17__ These features are enabled by the [`/std:c++17`](../build/reference/std-specify-language-standard-version.md) or later compiler option.
@@ -522,10 +544,12 @@ These algorithms aren't presently parallelized:
522544

523545
<a name="note_20abi"></a> __20abi__ Because of ongoing post-release work on the C++20 standard, `<format>`, the formatting parts of `<chrono>` (which rely on `<format>`), and the range factories and range adaptors from `<ranges>` (everything that needs the `view` concept) are only available under **`/std:c++latest`**. We'll make these features available under **`/std:c++20`** after reaching agreement with WG21 that no further ABI-breaking changes are necessary. The remaining parts of `<chrono>` and the algorithms that apply to ranges are enabled under the **`/std:c++20`** compiler option starting in Visual Studio 2019 version 16.11.
524546

525-
<a name="note_DR"></a> __DR__ These features are enabled in all C++ [`/std`](../build/reference/std-specify-language-standard-version.md) compiler option modes. The C++ Standard committee adopted this change as a retroactive Defect Report to C++11 and all later versions.
547+
<a name="note_23"></a> __23__ In Visual Studio 2022 version 17.0 and up, these features are enabled by the [`/std:c++latest`](../build/reference/std-specify-language-standard-version.md) compiler option.
526548

527549
<a name="note_C11"></a> __C11__ Compiler support for C11 and C17 requires Visual Studio 2019 version 16.8 or higher. Except as noted, C11 and C17 library support requires Windows SDK build 10.0.20211.0 or higher. For more information on how to install support for C11 and C17, see [Install C11 and C17 support in Visual Studio](./install-c17-support.md).
528550

551+
<a name="note_DR"></a> __DR__ These features are enabled in all C++ [`/std`](../build/reference/std-specify-language-standard-version.md) compiler option modes. The C++ Standard committee adopted this change as a retroactive Defect Report to C++11 and all later versions.
552+
529553
<a name="note_2104"></a> __2104__ C11 library support for this feature requires Windows SDK build 10.0.20348.0 (version 2104) or higher.
530554

531555
## See also

docs/windows/how-to-create-a-resource-script-file.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ When you create a new resource, Visual C++ assigns a unique name to it, for exam
102102
> [!NOTE]
103103
> If you don't already have an .rc file in your project, this step will create one. You can then repeat this step to add specific resource types to the new .rc file.
104104
105-
- In [Class View](/visualstudio/ide/viewing-the-structure-of-code), right-click the class, select **Add** > **Add Resource** and choose the type of resource to add to your project.
105+
- In [Class View](/visualstudio/ide/viewing-the-structure-of-code), right-click the project, select **Add** > **Add Resource** and choose the type of resource to add to your project.
106106

107107
- Use the menu **Project** > **Add Resource**.
108108

0 commit comments

Comments
 (0)