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.md
+12-14Lines changed: 12 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,8 +25,7 @@ Visual Studio 2022 version 17.14 includes the following conformance improvements
25
25
26
26
### Conformance improvements
27
27
28
-
29
-
- Standard library hardening ([P3471R4](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3471r4.html)) allows turning some instances of undefined behavior in the standard library into a contract violation. Off by default. Define `_MSVC_STL_HARDENING=1` project-wide to enable.
28
+
- Standard library hardening ([P3471R4](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3471r4.html)) turns some instances of undefined behavior in the standard library into a contract violation. Off by default. Define `_MSVC_STL_HARDENING=1` project-wide to enable.
30
29
31
30
### Enhanced behavior
32
31
@@ -76,19 +75,18 @@ Visual Studio 2022 version 17.14 includes the following conformance improvements
76
75
77
76
- Referencing binding to volatile-qualified types fixed when referring to a base/derived class. For example:
78
77
79
-
```cpp
80
-
struct A {};
81
-
struct B : public A {};
82
-
83
-
void f(A&); // 1
84
-
void f(const volatile A&); // 2
85
-
86
-
f(B{}); // Previously called 2. This is ill-formed under /permissive- or /Zc:referenceBinding. Chooses 1 if relaxed reference binding rules are enabled.
87
-
```
88
-
78
+
```cpp
79
+
struct A {};
80
+
struct B : public A {};
81
+
82
+
void f(A&); // 1
83
+
void f(const volatile A&); // 2
84
+
85
+
f(B{}); // Previously called 2. This is ill-formed under /permissive- or /Zc:referenceBinding. Chooses 1 if relaxed reference binding rules are enabled.
86
+
```
87
+
89
88
For an in-depth summary of changes made to the Standard Template Library, including conformance changes, bug fixes, and performance improvements, see [STL Changelog VS 2022 17.14](https://github.com/microsoft/STL/wiki/Changelog#vs-2022-1714).
90
89
91
-
92
90
## <aname="improvements_1713"></a> Conformance improvements in Visual Studio 2022 version 17.13
93
91
94
92
Visual Studio 2022 version 17.13 includes the following conformance improvements, bug fixes, and behavior changes in the Microsoft C/C++ compiler.
@@ -143,7 +141,7 @@ For an in-depth summary of changes made to the Standard Template Library, includ
143
141
144
142
This is a source/binary breaking change.
145
143
146
-
The implicit conversion to `bool` from `_com_ptr_t` instances can be surprising or lead to compiler errors. The [C++ Core Guidelines (C.164)](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Ro-conversion)discourages implicit conversion functions. And `_com_ptr_t` contained implicit conversions to both `bool` and `Interface*`. These two implicit conversions can lead to ambiguities.
144
+
The implicit conversion to `bool` from `_com_ptr_t` instances can be surprising or lead to compiler errors. The [C++ Core Guidelines (C.164)](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Ro-conversion)discourage implicit conversion functions. And `_com_ptr_t` contained implicit conversions to both `bool` and `Interface*`. These two implicit conversions can lead to ambiguities.
147
145
148
146
To address this, the conversion to `bool` is now explicit. The conversion to `Interface*` is unchanged.
Copy file name to clipboardExpand all lines: docs/overview/what-s-new-for-visual-cpp-in-visual-studio.md
+3-4Lines changed: 3 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,17 +35,16 @@ A quick highlight of some of the new features:
35
35
- Unreal Engine Integration:
36
36
- Blueprints support in the Visual Studio C++ debugger.
37
37
- Commands for building files, modules, and plugins are available natively in Visual Studio.
38
-
- Incremental linking is faster in some cases.
39
38
- New compiler flag [/forceInterlockedFunctions](../build/reference/force-interlocked-functions.md) to dynamically select between Armv8.0 load, store exclusive instructions or Armv8.1 Large System Extension (LSE) atomic instructions based on CPU capability at runtime.
40
39
- Use the Model Picker in Visual Studio to select your AI model for GitHub Copilot. Some models such as GPT-4o, Claude Sonnet 3.5, and Gemini 2.0 Flash are best for high performance. Others, such as Claude Sonnet 3.7 Thinking, o1, and o3-mini are optimized for reasoning and planning. For more information, see [Changing the AI model for Copilot Chat](https://docs.github.com/en/copilot/using-github-copilot/ai-models/changing-the-ai-model-for-copilot-chat). This picture shows the Model Picker which is available at the bottom of the GitHub Copilot chat window:
41
40
:::image type="complex" source="./media/model-picker.png" alt-text="A screenshot of the GitHub Copilot chat window with the Model Picker dropdown highlighted.":::
42
41
The dropdown for the Model Picker is open. The options include: GPT-4o, o3-mini, Claude 3.7 Sonnet Thinking, and others.
43
42
:::image-end:::
44
43
- Guidelines Support Library (GSL) 4.2.0 is available. This release includes performance improvements for `gsl::span`, new features, and better alignment with C++ standards. For more information, see [Announcing Guidelines Support Library v4.2.0](https://devblogs.microsoft.com/cppblog/announcing-guidelines-support-library-v4-2-0/).
0 commit comments