What’s New for C++ Developers in Visual Studio 2022 17.10

Sy Brand

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.

Recursive Template Instantiation

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.

Pinning a CMake Target via 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.

Screenshot of the updated Connect to Remote System dialog with a failed connection error. The error is displayed above the fields in an info bar and the Host Name and Port field are highlighted and labelled as "may be incorrect". The Connect button is enabled.

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.

A screen shot of a computer Description automatically generated

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.

A screenshot of a computer Description automatically generated

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.

A screenshot of a computer Description automatically generated

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:

A screenshot of a computer screen Description automatically generated

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:

Screenshot of the Visual Studio Installer. The GitHub Copilot component is highlighted with an orange outline.

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.

Copilot in action

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.

7 comments

Leave a comment

  • Tom Kirby-Green 0

    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.

  • Vladimir Purktz 0

    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

  • Igor Levicki 0

    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 CPUs with Intel AMX instruction set extensions.

  • Dang.D.Khanh 0

    too long to wait for std::runtime_format. please update!

  • Roger B 0

    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 be made in what looks like a faster timeline then you’ll be able to put the compiler back together again…

Feedback usabilla icon