We are happy to announce that Visual Studio 2022 version 17.10 is now generally available! This post summarizes the new features you can find in this release for C++. You can download Visual Studio 2022 from the Visual Studio downloads page or upgrade your existing installation by following the Update Visual Studio Learn page.
Standard Library and Compiler
We have incremented the minor version number of the MSVC toolset from 19.39 (VS 2022 v17.9) to 19.40 (VS 2022 v17.10). For more details, and some ways in which this will affect projects that assume that MSVC versions are all 19.3X for Visual Studio 2022 releases, see the MSVC Toolset Minor Version Number 14.40 in VS 2022 v17.10 blog post.
We’ve made a host of changes to our standard library implementation, with the help of the community. As always, you can see the STL Changelog for full details. We implemented C++26’s P2510R3 Formatting Pointers, which brings the set of format specifiers for pointers when using std::format
more in line with those that already exist for integers. We also implemented a few smaller features from C++26 and C++23, such as P2836R1, which makes std::basic_const_iterator
act in a more natural way with respect to implicit conversions. On the performance side, we improved the vectorized implementations of std::min_element
, std::ranges::min
and friends, made the copy/move assignment operators of std::expected
trivial when expected, and more.
C++ Productivity and Game Development
You can now use Build Insights to view your template instantiation information. Template instantiation collection must be activated in Tools > Options > Build Insights.
Check out our blog post on Templates View or our recording from Pure Virtual C++ for more details:
You can now keep our Unreal Engine plugin needed for Unreal Engine Test Adapter running in the background, greatly reducing startup costs. This is an opt-in feature that can be activated via Tools > Options > Unreal Engine. Furthermore, we have added additional Unreal Engine Macros to be indented in accordance with the UE Code Style.
Cross-Platform
If you’re targeting Linux, be sure to check out our video on our most recent development features for Linux from Pure Virtual C++:
CMake Targets View
We have added support for pinning CMake targets in the CMake Targets View. There is a top-level folder now for Pinned Targets. You can pin any targets by right-clicking and selecting the Pin option in the context menu.
You can also unpin any target in the Pinned Targets folder by selecting Unpin.
Connection Manager
We introduced some UX updates and usability improvements to the Connection Manager. With these updates we provide a more seamless experience when connecting to remote systems and/or debugging failed connections. Check out our blog post for more details.
Core Editor
View and Address Pull Request Comments
You can now view your GitHub and Azure DevOps pull request comments directly in your working file in Visual Studio. Enable the feature flag, “Pull Request Comments,” in Options > Environment > Preview Features and checkout the pull request branch to get started.
Generated Pull Request Descriptions
Similar to our generated Git commit message feature, you can now get a first draft for your pull request description created by GitHub Copilot. You’ll need to verify you have an active GitHub Copilot subscription. Try it out by clicking the ‘Add AI Generated Pull Request Description’ sparkle pen icon within the Create a Pull Request window. Please share your feedback on this feature here.
Image Hover Preview
If you hover over the path to an image, Visual Studio will now give you a small preview of the image itself, along with the size of the image in pixels and bytes. The size is capped to 500px wide and high.
New Text Formatting Options
You can now choose italic, bold, strikethrough, or underline styles for text formatting in the Options > Environment > Fonts and Colors settings:
Creating Conditional Breakpoints and Tracepoints from Expressions
You can now create a conditional breakpoint or tracepoint directly from an expression in your source code from the right-click menu. This works on property or field names and values from autos, locals, watch windows, or DataTips:
Attach to Process Dialog Revamp
The Attach to Process dialog has been improved for better functionality and user-friendliness. You can now easily switch between tree and list views, organize processes better with collapsible sections, and select code types with a simplified combobox. Moreover, the “Select/Track Window” feature is now easier to use, allowing two-way tracking: selecting a process highlights its window, and clicking on a window selects its process.
GitHub Copilot
We have unified the experience from the GitHub Copilot and Copilot Chat extensions and shipped them directly in Visual Studio. To install it, install the GitHub Copilot component in the Visual Studio Installer:
To use it, you’ll need an active GitHub Copilot subscription, and you can find the interface in the top-right corner of Visual Studio.
Send us your feedback
We are very much interested in your feedback to continue to improve this experience. The comments below are open. Feedback can also be shared through Visual Studio Developer Community. You can also reach us on Twitter (@VisualC), or via email at visualcpp@microsoft.com.
Time to give up msvc and move to clang. Seriously.
https://github.com/cppfastio/fast_io/issues/770
Exciting update! But I think the build tools version increase unfortunately broke CUDA with CMake. I’ve submitted https://developercommunity.visualstudio.com/t/VS-2022-1710-C-build-tools-144019/10668943.
Honestly, it's quite worrying that your FE team was fired. Have you had any luck hiring them back as 50% of your compiler doesn't exist (and the other 50% from the BE generates worse code compared to competitors from a decade ago)
The lack of C++23 "language" features will soon be a blocker for my industry in particular. We have a set of "reference" guidance and the decision on whether we're allowed to use C++23 will...
Microsoft should just give up msvc and move to clang like they did to chromium tbh.
too long to wait for std::runtime_format. please update!
I see there has been some work done on the debugger, but it would be nice if you could let your colleagues on the debugger team know that it is impossible to debug x86 C++ code in Visual Studio 2022 on Intel Sapphire Rapids Xeon CPUs in Windows 11 since August 2023 when those CPUs were released. I submitted a bug report, but it's "under consideration" seemingly forever. Apparently nobody except me uses workstation class...
Hi Sy, i see that have been added an image hover preview, could you bring attention from the extension team about this feature request?
Its been on “roadmap” for incontable years, almost 100 upvotes and a lot of comments requesting it 🙏🙏
Image Watch
With the new version of the MSVC toolset, please consider documenting the behavior of the default value, and add a “latest” value to the corresponding project configuration: https://developercommunity.visualstudio.com/t/Default-value-of-MSVC-Toolset-is-not-doc/10398953
Very much appreciate the investments you’ve made in the native code tool chain in this release. I’d really like to see more of the same, particularly in the fields of: Code Analysis, scaling the solution for very large projects, local ML based navigational help for large code bases.