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
Copy file name to clipboardExpand all lines: docs/overview/cpp-conformance-improvements-2017.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -611,7 +611,7 @@ To fix the warning, put `extern "C"` first:
611
611
extern "C" __declspec(noinline) HRESULT __stdcall
612
612
```
613
613
614
-
This warning is off by default in Visual Studio 2017 version 15.3, and only impacts code compiled with **`/Wall`** **`/WX`**. Starting in Visual Studio 2017 version 15.5, it's enabled by default as a level 3 warning.
614
+
This warning is off by default in Visual Studio 2017 version 15.3, and only impacts code compiled with **`/Wall`** **`/WX`**. Starting in Visual Studio 2017 version 15.5, it's enabled by default as a level 3 warning.
615
615
616
616
### `decltype` and calls to deleted destructors
617
617
@@ -1022,7 +1022,7 @@ To fix the error, remove the unused variable.
1022
1022
1023
1023
### Single-line comments
1024
1024
1025
-
In Visual Studio 2017 version 15.5, warnings C4001 and C4179 are no longer emitted by the C compiler. Previously, they were only emitted under the **`/Za`** compiler switch. The warnings are no longer needed because single-line comments have been part of the C standard since C99.
1025
+
In Visual Studio 2017 version 15.5, warnings C4001 and C4179 are no longer emitted by the C compiler. Previously, they were only emitted under the **`/Za`** compiler switch. The warnings are no longer needed because single-line comments have been part of the C standard since C99.
1026
1026
1027
1027
```cpp
1028
1028
/* C only */
@@ -1116,7 +1116,7 @@ error C2027: use of undefined type 'S'
1116
1116
1117
1117
### `std::is_convertible` target type
1118
1118
1119
-
`std::is_convertible` requires the target type to be a valid return type. In earlier versions of Visual Studio, the compiler incorrectly allowed abstract types, which might lead to incorrect overload resolution and unintended runtime behavior. The following code now correctly raises C2338:
1119
+
`std::is_convertible` requires the target type to be a valid return type. In earlier versions of Visual Studio, the compiler incorrectly allowed abstract types, which might lead to incorrect overload resolution and unintended runtime behavior. The following code now correctly raises C2338:
1120
1120
1121
1121
```cpp
1122
1122
#include<type_traits>
@@ -1193,7 +1193,7 @@ The warning was added in Visual Studio 2017 version 15.3, but was off by default
1193
1193
1194
1194
### Defaulted functions and `__declspec(nothrow)`
1195
1195
1196
-
The compiler previously allowed defaulted functions to be declared with `__declspec(nothrow)` when the corresponding base/member functions permitted exceptions. This behavior is contrary to the C++ standard and can cause undefined behavior at runtime. The standard requires such functions to be defined as deleted if there's an exception specification mismatch. Under **`/std:c++17`**, the following code raises C2280:
1196
+
The compiler previously allowed defaulted functions to be declared with `__declspec(nothrow)` when the corresponding base/member functions permitted exceptions. This behavior is contrary to the C++ standard and can cause undefined behavior at runtime. The standard requires such functions to be defined as deleted if there's an exception specification mismatch. Under **`/std:c++17`**, the following code raises C2280:
1197
1197
1198
1198
```cpp
1199
1199
struct A {
@@ -1441,7 +1441,7 @@ void sample(A<0> *p)
1441
1441
1442
1442
### C++20: Avoiding unnecessary decay (partial)
1443
1443
1444
-
[P0777R1](https://wg21.link/p0777r1) Adds differentiation between the concept of "decay" and that of simply removing const or reference qualifiers. New type trait `remove_reference_t` replaces `decay_t` in some contexts. Support for `remove_cvref_t` is implemented in Visual Studio 2019.
1444
+
[P0777R1](https://wg21.link/p0777r1) Adds differentiation between the concept of "decay" and that of simply removing const or reference qualifiers. New type trait `remove_reference_t` replaces `decay_t` in some contexts. Support for `remove_cvref_t` is implemented in Visual Studio 2019.
1445
1445
1446
1446
### C++17: Parallel algorithms
1447
1447
@@ -1613,7 +1613,7 @@ In [`/permissive-`](../build/reference/permissive-standards-conformance.md) mode
1613
1613
1614
1614
```cpp
1615
1615
template <typename T>
1616
-
using X = typename T; // C7511: 'T': 'typename' keyword must be
1616
+
using X = typename T; // C7511: 'T': 'typename' keyword must be
0 commit comments