Skip to content

Commit ce6b853

Browse files
author
Colin Robertson
committed
Update conformance table, dates
1 parent 400dfc9 commit ce6b853

File tree

3 files changed

+349
-337
lines changed

3 files changed

+349
-337
lines changed

docs/overview/cpp-conformance-improvements.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "C++ conformance improvements"
3-
ms.date: "03/16/2020"
3+
ms.date: "05/18/2020"
44
description: "Microsoft C++ in Visual Studio is progressing toward full conformance with the C++20 language standard."
55
ms.technology: "cpp-language"
66
---
@@ -14,17 +14,17 @@ Microsoft C++ makes conformance improvements and bug fixes in every release. Thi
1414

1515
Visual Studio 2019 RTW contains the following conformance improvements, bug fixes, and behavior changes in the Microsoft C++ compiler (MSVC)
1616

17-
**Note:** C++20 features will be made available in `/std:c++latest` mode until the C++20 implementation is complete for both the compiler and IntelliSense. At that time, the `/std:c++20` compiler mode will be introduced.
17+
**Note:** C++20 features will be made available in **`/std:c++latest`** mode until the C++20 implementation is complete for both the compiler and IntelliSense. At that time, the **`/std:c++20`** compiler mode will be introduced.
1818

1919
### Improved modules support for templates and error detection
2020

2121
Modules are now officially in the C++20 standard. Improved support was added in Visual Studio 2017 version 15.9. For more information, see [Better template support and error detection in C++ Modules with MSVC 2017 version 15.9](https://devblogs.microsoft.com/cppblog/better-template-support-and-error-detection-in-c-modules-with-msvc-2017-version-15-9/).
2222

2323
### Modified specification of aggregate type
2424

25-
The specification of an aggregate type has changed in C++20 (see [Prohibit aggregates with user-declared constructors](https://wg21.link/p1008r1)). In Visual Studio 2019, under `/std:c++latest`, a class with any user-declared constructor (for example, including a constructor declared `= default` or `= delete`) isn't an aggregate. Previously, only user-provided constructors would disqualify a class from being an aggregate. This change puts additional restrictions on how such types can be initialized.
25+
The specification of an aggregate type has changed in C++20 (see [Prohibit aggregates with user-declared constructors](https://wg21.link/p1008r1)). In Visual Studio 2019, under **`/std:c++latest`**, a class with any user-declared constructor (for example, including a constructor declared `= default` or `= delete`) isn't an aggregate. Previously, only user-provided constructors would disqualify a class from being an aggregate. This change puts additional restrictions on how such types can be initialized.
2626

27-
The following code compiles without errors in Visual Studio 2017 but raises errors C2280 and C2440 in Visual Studio 2019 under `/std:c++latest`:
27+
The following code compiles without errors in Visual Studio 2017 but raises errors C2280 and C2440 in Visual Studio 2019 under **`/std:c++latest`**:
2828

2929
```cpp
3030
struct A
@@ -44,7 +44,7 @@ B b = { 1 }; // ill-formed in C++20, previously well-formed
4444
4545
### Partial support for `operator <=>`
4646
47-
[P0515R3](https://wg21.link/p0515r3) C++20 introduces the `<=>` three-way comparison operator, also known as the "spaceship operator". Visual Studio 2019 in `/std:c++latest` mode introduces partial support for the operator by raising errors for syntax that is now disallowed. For example, the following code compiles without errors in Visual Studio 2017 but raises multiple errors in Visual Studio 2019 under `/std:c++latest`:
47+
[P0515R3](https://wg21.link/p0515r3) C++20 introduces the `<=>` three-way comparison operator, also known as the "spaceship operator". Visual Studio 2019 in **`/std:c++latest`** mode introduces partial support for the operator by raising errors for syntax that is now disallowed. For example, the following code compiles without errors in Visual Studio 2017 but raises multiple errors in Visual Studio 2019 under **`/std:c++latest`**:
4848
4949
```cpp
5050
struct S

0 commit comments

Comments
 (0)