Skip to content

Commit acda7b3

Browse files
committed
cleanup
1 parent 63a965e commit acda7b3

File tree

2 files changed

+15
-18
lines changed

2 files changed

+15
-18
lines changed

docs/overview/cpp-conformance-improvements.md

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ Visual Studio 2022 version 17.14 includes the following conformance improvements
2525

2626
### Conformance improvements
2727

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.
3029

3130
### Enhanced behavior
3231

@@ -76,19 +75,18 @@ Visual Studio 2022 version 17.14 includes the following conformance improvements
7675

7776
- Referencing binding to volatile-qualified types fixed when referring to a base/derived class. For example:
7877

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+
8988
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).
9089

91-
9290
## <a name="improvements_1713"></a> Conformance improvements in Visual Studio 2022 version 17.13
9391

9492
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
143141

144142
This is a source/binary breaking change.
145143

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.
147145

148146
To address this, the conversion to `bool` is now explicit. The conversion to `Interface*` is unchanged.
149147

docs/overview/what-s-new-for-visual-cpp-in-visual-studio.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,16 @@ A quick highlight of some of the new features:
3535
- Unreal Engine Integration:
3636
- Blueprints support in the Visual Studio C++ debugger.
3737
- Commands for building files, modules, and plugins are available natively in Visual Studio.
38-
- Incremental linking is faster in some cases.
3938
- 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.
4039
- 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:
4140
:::image type="complex" source="./media/model-picker.png" alt-text="A screenshot of the GitHub Copilot chat window with the Model Picker dropdown highlighted.":::
4241
The dropdown for the Model Picker is open. The options include: GPT-4o, o3-mini, Claude 3.7 Sonnet Thinking, and others.
4342
:::image-end:::
4443
- 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/).
4544
- Implemented C++23 features:
46-
- [static operator()](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1169r4.html)
47-
- [static operator\[\]()](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2589r1.pdf)
48-
- [`if consteval`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1938r3.html
45+
- [`static operator()]`(https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1169r4.html)
46+
- [`static operator[]`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2589r1.pdf)
47+
- [`if consteval`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1938r3.html)
4948
- [`static constexpr` variables in `constexpr` functions](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2647r1.html)
5049
- [Attributes on lambda expressions](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2173r1.pdf)
5150
- [Remove unnecessary () from lambdas](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1102r2.html)

0 commit comments

Comments
 (0)