C++ Team Blog
The latest in C++, Visual Studio, VS Code, and vcpkg from the MSFT C++ team
Latest posts
What’s New in vcpkg (Nov 2025 – Jan 2026)
This blog post summarizes changes to the vcpkg package manager as part of the 2025.12.12 and 2026.01.16 registry releases and the 2025-11-13, 2025-11-18, 2025-11-19, 2025-12-05, and 2025-12-16 tool releases. These updates include support for targeting the Xbox GDK October 2025 update, removing a misleading and outdated output message, and other minor improvements and bug fixes. Some stats for this period: vcpkg changelog (2025.12.12, 2026.01.16 releases) Total ports available for tested triplets While vcpkg supports a much larger variety of target platforms ...
MSVC Build Tools Versions 14.30 – 14.43 Now Available in Visual Studio 2026
When Visual Studio 2026 reached General Availability in November, it included several versions of the Microsoft C++ (MSVC) Build Tools: To make it easier to bring your Visual Studio 2022 projects to Visual Studio 2026, we are now including all the versions of MSVC that shipped in Visual Studio 2022 version 17.0 and later to the Visual Studio 2026 installer. This includes MSVC versions 14.30 – 14.43 and x64/x86 and ARM64/ARM64EC build targets. This change also addresses a request from our users on Visual Studio Developer Community. With these new options in the installer, you can tr...
GitHub Copilot app modernization for C++ is now in Public Preview
With the launch of Visual Studio 2026, we announced a Private Preview of GitHub Copilot app modernization for C++, which reduces the cost of adopting the latest version of the MSVC Build Tools. We used the feedback we received from our many Private Preview participants to make improvements that benefit all our users. After receiving feedback, we added support for CMake projects, reduced hallucinations, removed several critical failures, improved Copilot’s behavior when encountering an internal compiler error, and reinforced Copilot’s understanding of when project files need to be modified to do the upgrade. He...
Visual Studio Code CMake Tools 1.22: Target bookmarks and better CTest output
We're excited to announce the latest 1.22 release of the CMake Tools extension for Visual Studio Code. This update brings a host of new additions, including project outline updates for filtering and bookmarking CMake targets in large CMake projects and expanded CTest support to customize this output. To view the full list of updates with this release, please look at our CHANGELOG. This release features the following contributions from our open-source community. Thank you for your continued support! Project Outline view updates: Filter and bookmark your CMake Targets Naviga...
Now in Public Preview: GitHub Copilot build performance for Windows
Last year, we launched our new GitHub Copilot build performance capabilities in Private Preview. With help from our fantastic C++ community, we gathered insights and addressed key feedback. We’re happy to share that GitHub Copilot build performance for Windows is now in Public Preview. Today, all C++ developers can try out the new capabilities in the latest Visual Studio 2026 Insiders. “I've tried the feature for a few hours and I'm happily impressed. The agent provided accurate suggestions, implemented them, and managed to reduce my build time by about 20%." - Alessandro Vergani, ARGO Vision Optimizing Bui...
C++ code editing tools for GitHub Copilot: now in Public Preview
In November, we introduced C++ code editing tools for GitHub Copilot as a Private Preview, focusing on partnering with customers to tackle one of the common, taxing challenges for C++ development: refactoring at scale. Since then, we've listened to feedback and refined our tooling to make wide-sweeping C++ edits easier. "With C++ code editing tools for GitHub Copilot in Visual Studio, we've seen noticeably better overall results, with fewer errors and faster processing on large projects." - Software engineer (from our Private Preview) We're excited to announce that C++ code editing tools for GitHub Copilot are ...
New release cadence and support lifecycle for Microsoft C++ Build Tools
Starting with Visual Studio 2026, we are introducing a new support lifecycle for the Microsoft C++ (MSVC) Build Tools. We are also updating the MSVC release cadence. As Visual Studio moves to a Modern Lifecycle with monthly feature updates and an annual new version, decoupling the compiler from the IDE offers you the best of both worlds – rapid iteration in the IDE and predictable, long-term stability for the build tools. This approach brings you the latest C++ advancements across both IDE and build tools while helping you maintain secure and compliant build environments, with enterprise-grade support, and fle...
Introducing MSVC AddressSanitizer for ARM64 targets
We are pleased to announce AddressSanitizer (ASan) support for the Microsoft C++ (MSVC) Build Tools for ARM64 targets. ASan is a runtime memory error detector that identifies difficult-to-find bugs with zero false positives and improves memory safety. More technical information on ASan can be found at aka.ms/asan. ASan has long supported the x64 and x86 architectures. With the release of Visual Studio 2026 for production use, this support now extends to ARM64. The feature is currently in preview, so there may be build, runtime, or IDE integration issues. Cross-compiling for ARM64 targets from x86 or x64 hosts...
Perform wide-sweeping refactors using C++ code editing tools for GitHub Copilot
Refactoring a C++ codebase can often require tracking updates across various sections of multiple files to ensure accuracy and relevancy. Historically, developers have relied on manual searches across a codebase and refactoring tools to perform these types of edits. However, with GitHub Copilot agents, developers can now delegate these complex editing tasks to the agent, which understands your intent and can carry out codebase-wide edits, reducing the manual effort required to perform these refactors. To make this experience even more powerful for C++ developers, we’re introducing C++ Code Editing Tools f...
Optimize Your C++ Build Times with GitHub Copilot
Long build times are one of the top pain points for C++ projects. If you’ve ever waited too long for a C++ build to finish, you know how much it can slow down your productivity. In past years, we introduced C++ Build Insights to help you analyze traces and find bottlenecks. However, we know that embarking on these investigations manually can still take time and effort. To make this experience easier for C++ developers, we’re excited to announce that GitHub Copilot build performance for Windows is now available in Private Preview with the latest version of Visual Studio 2026 Insiders. New GitHub Copilot Ca...
Fix build issues using GitHub Copilot after upgrading MSVC Build Tools
A few problems have reared their heads at every company where I’ve worked on C++ as a Software Engineer over the past 20 years. For the most part, those problems have nothing to do with the language and how it is used, but instead all the “other” stuff, like dealing with long build times, getting consistent build environments, and managing the technical debt of an evolving tooling landscape. When the tools we use to build our applications and systems have new releases, we must make hard decisions. Do we adopt the latest and greatest and turn potential technical debt into realized technical debt, or do we e...
What’s New for C++ Developers in Visual Studio 2026 version 18.0
Get ready to level up your C++ productivity, because Visual Studio 2026 version 18.0 is now generally available! You can take advantage of the new features, bug fixes, and performance improvements in your production environment. This post describes what’s new for C++ developers, including new features or improvements in these areas: You can also read the broader announcement on the Visual Studio Blog for more details on changes that are non-C++-specific. Let’s dive in! Your feedback matters to us You can always give us feedback abo...
Inside Visual Studio: Improving Open-Source Workflows with vcpkg
vcpkg, an open-source C/C++ package manager maintained by Microsoft, is increasingly recognized as a leading dependency management solution. As an enterprise-grade tool, it enables organizations to streamline library imports, reduce duplication, and support flexible, reproducible builds across a wide array of environments. This need for streamlined dependency management is especially relevant in the build system for the Visual Studio repository. This system not only supports the development of Visual Studio itself but also integrates decades of legacy infrastructure, specialized tools, and complex architecture...
What’s New in vcpkg (October 2025)
This blog post summarizes changes to the vcpkg package manager as part of the 2025.10.17 registry release, the 2025-10-10 and 2025-10-16 tool releases, as well as changes to vcpkg documentation throughout October. This month’s updates includes partial support for Visual Studio 2026 and platform toolset v145, NetBSD platform support, and minor improvements and bug fixes. Some stats for this period: vcpkg changelog (2025.10.17 release) Documentation changes Over the past month we had minor documentation improvements. If you have any suggestions for our documentation, pl...
Microsoft C++ Team at CppCon 2025: Trip Report
Another year and another CppCon is all wrapped up! Microsoft was pleased to once again be an exhibitor and to have several of our employees present sessions at the conference. Here are my major takeaways from the keynotes, sessions, conversations, and the general vibe. The week before CppCon, we announced Visual Studio 2026 and Microsoft C++ (MSVC) Build Tools v14.50, and the conference gave us a great opportunity to let you know what you can expect in the new release and for you to give us your feedback. We highly encourage you to try out the Insiders release and let us know what your experience...
Upgrading C++ Projects to Visual Studio 2026
With Visual Studio 2026 version 18.0 getting closer to General Availability (GA), we want to share with you how you can upgrade your projects from your current versions of Visual Studio and the Microsoft C++ (MSVC) Build Tools to the latest versions. The new IDE ships with the v145 platform toolset for MSBuild C++ projects and MSVC Build Tools version 14.50. In this post, I will walk you through the process step-by-step, while explaining some of the features available to you to make the transition as painless as possible. Overall, our goal is to help you get current and stay current. You can also review the updat...
New GitHub Copilot capabilities for C++ developers: Upgrade MSVC, improve build performance, and refactor C++ code
Yesterday at GitHub Universe, GitHub announced support for custom agents. Custom agents are specialized configurations with custom prompts and context that focus Copilot on specific development tasks. On the C++ team, we have a similar goal: Provide differentiated capabilities that optimize GitHub Copilot for C++ development tasks. As a first step towards this goal, we’re announcing new capabilities for GitHub Copilot that support C++ developers in three development tasks: These experiences will be available soon as a Private Preview in Visual Studio 2026. Join the waitlist for Private Pr...
What’s New in vcpkg (September 2025)
This blog post summarizes changes to the vcpkg package manager as part of the 2025.09.17 registry release, the 2025-08-29 and 2025-09-03 tool releases, as well as changes to vcpkg documentation throughout September. This month’s updates includes new binary caching sources and , support for tvOS and watchOS target platforms, and minor improvements and bug fixes. Some stats for this period: vcpkg changelog (2025.09.17 release) Documentation changes If you have any suggestions for our documentation, please submit an is...
Fixing Overload Resolution For Parameter Arrays in C++/CLI
Fix a problem in C++/CLI parameter array overload resolution which affects newer .NET versions.
Microsoft C++ Team at CppCon 2025
It's that time of year again! We are excited to see you all at CppCon this year, where we'll once again be delivering a variety of presentations, from the latest advancements in debugging technology to extensibility frameworks for AI agents. See the end of this post for a listing of all of the sessions involving Microsoft staff. And yes, there'll be plenty of information on the freshly announced Visual Studio 2026. We'll also have a booth through the first four days of the conference. Come on by and let us know what matters to you or ask any burning questions you may have regarding C++ at Microso...
C++ Language Updates in MSVC Build Tools v14.50
C++ Language Updates in MSVC Build Tools v14.50 It has been some time since we have provided an update on MSVC progress, and this one comes with the latest major update to our IDE: Visual Studio 2026 version 18.0. This version of Visual Studio ships with the MSVC Build Tools version 14.50, which includes version 19.50 of the MSVC compiler. You can try out the improvements by downloading the Insiders release. Also, if you want to track updates in the Standard Library, check out the STL Changelog, which is regularly updated. Let’s jump right into the updates! C++23 Features As C++ standards progress in MSVC, you...
Visual Studio 2026 Insiders is here!
Get ready –the first Insiders release of Visual Studio 2026 has arrived! In this new evolution of Visual Studio, we’re continuing our commitment to building the best integrated developer environment for C++ developers on Windows. Visual Studio 2026 features a fresh UI, faster performance, and improved developer productivity with advanced AI integration. For more details on what’s new, check out the official announcement on the Visual Studio Blog! We would love your feedback – try out our Insiders release of Visual Studio 2026 today! If you run into any issues, you can report them to Visual Studio Dev...
What’s New in vcpkg (August 2025)
This blog post summarizes changes to the vcpkg package manager as part of the 2025.08.27 registry release as well as changes to vcpkg documentation throughout August. There were no tool changes as of the date of the registry release in August, though more changes will be listed in the next release in September. Some stats for this period: GitHub Dependabot support for vcpkg Earlier this month, we announced GitHub Dependabot support for vcpkg. This allows GitHub users to receive automated PRs to upgrade their vcpkg versioning baselines. Since that announcement, the automated PRs have b...
Announcing Proxy 4: The Next Leap in C++ Polymorphism
Version 4 of Microsoft's Proxy library brings feature improvements, better diagnostics, better code generation, modern compiler/debugger support.
Dependabot support for vcpkg
We are excited to announce that GitHub’s Dependabot now brings automated dependency updates to C++ projects using vcpkg. This support is available for projects using vcpkg manifest files, empowering teams to keep their library dependencies current and secure with minimal effort. With Dependabot, your repo can receive automatic pull requests to upgrade your libraries to the latest available versions. What does this mean for your projects? For C++ developers managing dependencies through vcpkg, this integration eliminates a critical gap in the DevSecOps pipeline. Dependabot will automatically scan your manifests...
What’s New in vcpkg (July 2025)
This blog post summarizes changes to the vcpkg package manager as part of the 2025.07.25 registry release, 2025-06-20, 2025-07-16, and 2025-07-21 tool releases, as well as changes to vcpkg documentation throughout July. This release includes a new command for printing package SPDX licenses, binary caching optimizations, and support for visionOS, Solaris, and illumos systems. Some stats for this period: vcpkg changelog (2025.07.25 release) The following notable changes were made in this release: Documentation changes If you have any suggestions for...
Dynamically Update C++ syntax using Next Edit Suggestions
When working in a C++ repo, you often are maintaining and updating existing code just as often as you are writing new code. However, updating code in C++ can often require navigating to several different locations in a file to ensure consistency, which can disrupt your logical workflow. For example, changing a data member’s access level typically involves several steps: moving the member between the and sections of the class, adding getter/setter methods, and updating all references to respect this new access level. GitHub Copilot now supports Next Edit Suggestions (or NES for short) to predict the next edit...
Visual Studio Code CMake Tools Extension 1.21 Release: Multi-root improvements, CMake Presets v10, and more…
We’re excited to announce the latest 1.21 release of the CMake Tools extension for Visual Studio Code. This update brings a host of new updates, including addressing one of our top-voted issues for multi-root improvements and adding CMake presets version 10 support. To view the full list of updates with this release, please look at our CHANGELOG. This release features the following ten contributions from our open-source community. Thank you for your continued support! Multi-root improvements We addressed one of our top-voted customer feedback issues to improve mult...
Updates to Warning Suppressions in Microsoft C++ Code Analysis
Improvements to \#pragma warning and gsl::suppress in Microsoft C++ Code Analysis.
Smarter, workspace-aware code completions for C++ in VS Code
C++ code understanding Developing C++ code can be complex. C++ project structure, style, and convention can vary widely from repository to repository, and critical context for a given task often spans multiple files. This can require C++ developers to open and navigate across several files to fully understand a given project and author new code. The GitHub Copilot team has focused on two areas to improve the C++ developer experience for code completions: These improvements are designed to help the autocomplete-style inline GitHub Copilot code completions be even more productive with C++ coding, m...
What’s New in vcpkg (June 2025)
This blog post summarizes changes to the vcpkg package manager as part of the 2025.06.13 registry release, 2025-04-16, 2025-05-19, and 2025-06-02 tool releases, as well as changes to vcpkg documentation throughout May and June. This release includes bug fixes, several documentation changes, and the removal of the binary caching provider for GitHub (alternatives are described below). Some stats for this period: vcpkg changelog (2025.06.13 release) The following notable changes were made in this release: Documentation changes ...
How Electronic Arts standardized C++ builds across Windows and Linux with Visual Studio Build Tools
At Electronic Arts (EA), the Frostbite Enginering Workflows team has thousands of developers who work on powerful game engines behind popular games. EA has relied on Visual Studio for years due to several features such as IntelliSense, Build Insights, and the overall debugging experience and eagerly use newer integrations such as GitHub Copilot. They also use Visual Studio capabilities for their cross-platform development needs. We're proud to partner with EA to shape cross-platform development capabilities in Visual Studio. Read more in the full story about how we worked with EA to enable them to customize ...
Address Sanitizer Updates for Visual Studio 2022 Version 17.14
Introduction It has been an exciting few months for the Address Sanitizer (ASan) since our last update. In addition to our continuous focus on quality and correctness, our internal “dogfooding” (i.e. internal adoption) effort has reached several important milestones. In this update, I want to go over some of the quality improvements since Visual Studio 2022 version 17.13, and to give a peek into how ASan is now protecting our C++ toolset against memory safety errors during development. Some improvements in Visual Studio 2022 version 17.14 This release also contains several other impr...
What’s New for C++ Developers in Visual Studio 2022 17.14
Visual Studio 2022 version 17.14 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’ve made a myriad of fixes and improvements to the MSVC compiler and standard library. See C++ Language Updates in MSVC in Visual Studio 2022 17.14 for a full list of changes on the compiler side, and the STL Changelog for all the standard library updates. Compiler We’ve added support...
Introducing the /forceInterlockedFunctions switch for ARM64
In Visual Studio 2022 17.14, we are introducing the switch, which generates and links with out-of-line atomics that select Armv8.1+ Large System Extension (LSE) atomic instructions based on CPU support. This switch is on by default for Armv8.0 and off for Armv8.1+. Outlining is necessary in Armv8.0 because this version's interlocked intrinsics use exclusive instructions—/—that do not guarantee forward progress. This can cause performance issues due to intermittent livelocks. See Arm Architecture Reference Manual for A-profile architecture, section "B2.17.5 Load-Exclusive and Store-Exclusive instruction usage ...
C++ Language Updates in MSVC in Visual Studio 2022 17.14
Introduction In this update, we continue the tradition of bucketing bugs into helpful categories for you all to filter through along with even more notes from the compiler team as to what, exactly, was fixed. This blog is also complemented by the recent Pure Virtual C++ pre-conference talk by RanDair Porter; so please check out RanDair's talk, "MSVC C++23 Conformance", if you have not already to get a better view of MSVC's conformance status for Visual Studio 2022 overall. 17.13 notes for reference. C++23 Features Note: C++23 features can be used by either adding or to the command line. In addition, feat...
What’s New in vcpkg (April 2025)
This blog post summarizes changes to the vcpkg package manager as part of the 2025.04.09 registry release, 2025-03-22, 2025-04-01, and 2025-04-07 tool releases, as well as changes to vcpkg documentation throughout April. This release contains bug fixes, a new documentation article on offline usage of vcpkg, and other minor improvements. Arm64 Linux users of vcpkg also no longer have to build the vcpkg tool from source when they install vcpkg. Some stats for this period: vcpkg changelog (2025.04.09 release) The following notable changes were made in April: ...
There’s a Linux File Explorer built into Visual Studio!?!
The Remote File Explorer in Visual Studio provides developers with a convenient way to browse, view, and edit files on remote machines—directly from within the IDE. It's a powerful tool for managing remote environments without leaving your development workflow. Scott Hanselman published a new YouTube video to his channel, taking us on the journey of discovering and using the Remote File Explorer to interact with his personal PiDP-11 through shell scripts stored on the minicomputer. Check out Scott’s video and his thoughts about using the Remote File Explorer below: Using the Remote File Explorer and re...
VS Code C++ Extension 1.25 Release: Explain C++ symbols using Copilot & Customize recursive include paths
The 1.25 release of the C++ extension in Visual Studio Code introduces a new way to understand your code faster with GitHub Copilot-powered symbol summaries, as well as new customization options for recursive #include path processing. With these enhancements, you gain AI-powered insights into unfamiliar or undocumented code and can optimize IntelliSense performance based on your preferences. Experience these new features for yourself by updating to version 1.25. Copilot Hover Want to understand your unfamiliar codebases like undocumented library code quicker without having to navigate around files and re...
Pure Virtual C++ 2025 is Tomorrow
Pure Virtual C++ is our free, one-day, virtual conference for the whole C++ community. It's running live tomorrow, 30th April, from 14:00 to 16:30 UTC. The talks are: We also have a host of pre-conference content available on YouTube. We look forward to seeing you there!
Pure Virtual C++ 2025: Pre-Conference Videos
Pure Virtual C++ is our free, one-day, virtual conference for the whole C++ community. It is running on 30th April. The first half of our pre-conference videos is now available on YouTube. The videos are: We look forward to seeing you at Pure Virtual C++!
Pure Virtual C++ 2025: Full Schedule
Pure Virtual C++ is our free, one-day, virtual conference for the whole C++ community. This year, it is running on the 30th April. We're pleased to announce the schedule of live talks: You can find abstracts for all the talks and register for the conference with the button below. Keep an eye out for on-demand pre-conference content coming soon on YouTube.
What’s New in vcpkg (March 2025)
This blog post summarizes changes to the vcpkg package manager as part of the 2025.03.19 registry release, 2025-03-13 tool release, as well as changes to vcpkg documentation throughout March. This release includes two new commands for our continuous integration system PR reviews, minor bugfixes, a new documentation article on authenticating to NuGet feeds, and a few other minor documentation fixes. Some stats for this period: vcpkg changelog (2025.03.19 release) The following notable changes were made in March: Documentation changes ...
Pure Virtual C++ 2025 Talks Announced
Pure Virtual C++ is our free, one-day, virtual conference for the whole C++ community. This year, it is running on the 30th April. We're pleased to announce four of our five live sessions for the day: You can find abstracts for all the talks and register for the conference with the button below.
Automatically generate any doc comment for C++ functions in Visual Studio
Have a difficult time documenting your C++ code? Spending too much time thinking of what a function and its parameters accomplish when generating documentation? Copilot is now integrated into C++ doc comments to automatically provide documentation suggestions based on the function’s contents in Visual Studio 2022 17.14 Preview 2. To learn more about this feature, please check out the original announcement on the Visual Studio blog. What do you think? Try out the latest Copilot features for your C++ workflows today. To access these updates to Copilot, you’ll need an active GitHub Copilot subscription a...
VS Code C++ Extension Updates: 4x Faster Colorization & 3.5x Faster Project Startup
In the latest releases of the C++ Extension in Visual Studio Code, we have focused on performance improvements and stability. A fast, responsive, and reliable development environment is essential for maintaining productivity, especially in large and complex C++ projects. These updates include many incremental optimizations that collectively speed up the time from opening a C++ project to writing code with the full suite of C++ features available at your fingertips. Experience these new features for yourself by updating to the newest version of the C++ Extension. Faster Project Startup and Time to Colorization ...
Boost Your CMake Development with Copilot Custom Instructions
Introduction Creating a new CMake project that uses unfamiliar libraries can be daunting and time-consuming. This blog post takes you along on my journey using Copilot to make this easier, and leveraging Custom Instructions to tailor Copilot responses. For a sneak peek, see the outcome of this journey in this repository. Background As C++ developers who use Copilot every day, we’ve experienced how it can improve our day-to-day productivity. Copilot really shines in scenarios like new codebases or unfamiliar topics, significantly reducing ramp-up. There are multiple ways to engage with it in Visual Studio, incl...
Sign Up for the free Pure Virtual C++ 2025 Conference
Every year we run Pure Virtual C++: a free one-day virtual conference for the whole C++ community. Next month we’re doing it again! Sign-up for free to get access to our five live sessions and a host of pre-conference content. The live event will start at April 30th 14:00 UTC. Videos will be available to stream for free on YouTube after the conference. The speakers and topics will be announced soon. Hope to see you there!
C++ Dynamic Debugging: Full Debuggability for Optimized Builds
Over the past 5 years, we’ve had many incredible opportunities to engage with game developers. From AAA studios to indie developers, the passion for slashing iteration times is significant. Amidst all the fantastic feedback we've received for Visual Studio, one sentiment has rung loud and clear: a desire to debug optimized C++ code without sacrificing performance. Although game developers have voiced this need the loudest, we know that solving this issue will benefit many other C++ workflows. While we've consistently rolled out many productivity and performance enhancements over the years, debugging optimized cod...
Optimizing Build Times with Build Insights: How Activision Cut Call of Duty’s Build Time by 50%
Slow build times are a major headache for developers, especially in large, complex C++ codebases like game engines. Every minute spent waiting on a build is time that could be used to refine features, resolve issues, or push development forward. Activision faced this challenge with Call of Duty: Modern Warfare II, where prolonged build times were slowing down iteration and impeding workflows. By leveraging Build Insights, they identified key inefficiencies, optimized bottlenecks, and successfully reduced build times from 27:49 minutes to just 14:25 minutes—cutting them in half. Read more about their journey in ou...
Visual Studio at GDC 2025
Join us in-person at Game Developers Conference 2025 with an in-depth look at how Visual Studio and GitHub Copilot can streamline your iteration workflow. Don’t miss the unveiling of our biggest C++ debugger update yet. Session Title: Accelerating Your Inner Loop with Visual Studio and GitHub Copilot Session Info: March 19th, 2025, 12:30 PM-1:30 PM Pacific Time | GDC Industry Stage, Expo Floor, South Hall Abstract: Get ready to supercharge your development process with the newest features in Visual Studio! This year, we're thrilled to unveil our most powerful C++ debugger upgrade yet, designed to sla...
Announcing Guidelines Support Library v4.2.0
Version 4.2.0 of Microsoft's Guidelines Support Library brings performance improvements, safety features, modern compiler support.
What’s New in vcpkg (February 2025): Package installation performance, new tested triplet, and more
This blog post summarizes changes to the vcpkg package manager as part of the 2025.02.14 registry release, 2025-02-11, 2025-01-29, 2025-01-24, and 2025-01-20 tool releases, as well as changes to vcpkg documentation throughout February. This release includes significant performance improvements when installing packages, a new tested triplet (x64-windows-release), an overhaul of how vcpkg handles some downloads and console output, and bug fixes. In terms of documentation, there are improvements to our maintainer guide, registries articles, and versioning articles, among others. Some stats for this period: ...
std::generator: Standard Library Coroutine Support
is a C++23 feature that enables you to write concise, straightforward functions that generate sequences of values on-demand without manually managing state. It builds upon C++20’s coroutines, providing some standard library support for this powerful, but complex, language feature. As of Visual Studio 2022 version 17.13, we ship an implementation of in our standard library. This blog post will walk through an example of how to use the feature, compare it to implementing custom ranges, consider some of the design decisions made, and briefly look at the performance implications. Motivating Example Here’s a sh...
MSVC Address Sanitizer updates in Visual Studio 2022 version 17.13
We have been investing in the quality of MSVC Address Sanitizer (ASan) in several key areas over the past year, including working with LLVM upstream to stay coordinated with their changes, adding coverage for internal tools and libraries, and hardening APIs and runtime modes. Upstreaming to LLVM MSVC ASan is derived from a fork of the LLVM repository. Prior to Visual Studio 2022 version 17.12, MSVC ASan was based on outdated versions of LLVM’s compiler-rt (where the ASan source code lives), and we could not incorporate changes from newer versions of LLVM without significant delay. We have recently comple...
Visual Studio Code CMake Tools Extension 1.20 Release: Introducing Built-In CMake Language Services
The February release of CMake Tools in VS Code is now available. With this release, we have some new updates to the extension to improve CMake integrations with the extension’s support. Some updates include the built-in support for CMake Language services, addressing our most highly-upvoted issues in the CMake Tools extension, and CMake presets v9 support. To view the full list of updates with this release, please look at our CHANGELOG. This release features the following nine contributions from our open-source community. Thank you for your continued support! Built-i...
MSVC C++ Code Analysis: Updates in Visual Studio 2022 version 17.13
This post details the latest updates in Visual Studio 2022 version 17.13 for MSVC C++ Code Analysis. Driven by internal team insights and developer community feedback, these improvements significantly reduce false positives and strengthen production code security.
C++ Language Updates in MSVC in Visual Studio 2022 17.13
Introduction For this update, we have changed things up a little bit. We now have more distinct buckets of fixes/implemented features. This is to help guide readers who care about specific features to more easily see how the compiler front-end team is making progress on the things you care about. 17.12 notes for reference. C++23 Features As part of our continuing ramp-up on C++23 conformance, the team has implemented the following features. In future releases customers can expect to see continued acceleration towards C++23 conformance. Note: C++23 features can be used by either adding or to the command...
What’s New for C++ Developers in Visual Studio 2022 17.13
We are happy to announce that Visual Studio 2022 version 17.13 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 On the compiler side, we’ve implemented C++23’s literal suffix. The suffix or (or any permutation of these) will help you avoid sneaky truncations or signed comparison mismatches, especially when writing loops. For example: Note that, while this feature...
Document build instructions and more with enhanced C++ awareness from Copilot Chat in Visual Studio
C++ development often involves nuances beyond the file you’re developing in. This can leave developers with many mental tabs open, balancing all the relevant context for their project to develop their C++ code properly. Copilot Chat in Visual Studio can already utilize context provided by specified files and invoked agents such as @workspace to generate suggestions. However, to improve the relevance of Copilot suggestions, we must provide tailored context to Copilot with considerations specific to the C++ language for developers to achieve better results. That way, developers can focus less on providing all th...
What’s New in vcpkg (January 2025)
This blog post summarizes changes to the vcpkg package manager as part of the 2025.01.13 registry release, 2025-01-11 tool release, as well as changes to vcpkg documentation throughout January. This release includes minor improvements and bug fixes. Some stats for this period: vcpkg changelog (2025.01.13 release) The following notable changes were made in January: Documentation changes There are no changes to vcpkg documentation this month. If you have any suggestions for our documentation, please submit an issue in our GitHub repo or see the box at the bottom of ...
What’s New in vcpkg (December 2024)
This blog post summarizes changes to the vcpkg package manager as part of the 2024.12.16 registry release, 2024-12-09 tool release, as well as changes to vcpkg documentation throughout December. This release includes a command line option to force vcpkg to use classic mode even if a manifest file is found along with bug fixes. Some stats for this period: vcpkg changelog (2024.12.16 release) The following notable changes were made in December: Documentation changes If you have any suggestions for our documentation, please submit an issue in our GitHub repo or ...
MSVC Compiler Language Updates in Visual Studio 2022 version 17.12
Introduction In alignment with the Visual Studio 2022 version 17.12 release, and based upon feedback received from the community, the MSVC compiler team would like to provide greater visibility into the C++ language-level fixes for customer-reported issues that made it into the release. This is similar to how the standard library team publishes regular changelogs (see VS 2022 17.12 for reference). The focus for Visual Studio 2022 version 17.12 is primarily to address bugs reported through Developer Community. C++23 Features: While our overall focus has been on fixing bugs reported via Developer Community, we i...
What’s New in vcpkg (November 2024)
This blog post summarizes changes to the vcpkg package manager as part of the 2024.11.16 registry release, 2024-11-12 tool release, as well as changes to vcpkg documentation throughout November. This release includes a command line option to force vcpkg to use classic mode even if a manifest file is found along with bug fixes. Some stats for this period: vcpkg changelog (2024.11.16 release) The following changes were made in November: Documentation changes If you have any suggestions for our documentation, please submit an issue in our GitHub repo or ...
Siemens Healthineers manages C++ libraries with vcpkg in an offline build environment
vcpkg is a free and open-source C/C++ package manager maintained by Microsoft and the C++ community that runs on Windows, macOS, and Linux. Over the years we have heard from companies using vcpkg to manage dependencies at enterprise-scale. For this blog post, I spoke to Shrey Chauhan, a Senior DevOps Engineer with Siemens Healthineers. Siemens Healthineers adopted vcpkg in late 2023 after a successful proof of concept. Their main motivation was to improve their versioning and overall dependency management for C++ libraries in their offline, air-gapped build environment. They also like vcpkg’s integration with ...
What’s New for C++ Developers in Visual Studio 2022 17.12
We are happy to announce that Visual Studio 2022 version 17.12 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 MSVC Compiler As always, you can find all the details about our STL work in the changelog on GitHub. Thanks to everyone who contributed changes for this release! On the conformance side, we have finished the implementation of C++23’s P2286R8 Formatting Ranges by im...
What’s New in vcpkg (October 2024)
This blog post summarizes changes to the vcpkg package manager as part of the 2024.10.21 registry release, 2024-10-18 tool release, as well as changes to vcpkg documentation throughout October. This release adds support for Azure universal packages as a binary caching provider and other minor improvements. CppCon Talk on Managing C++ Dependencies I also gave a talk at CppCon about 10 Problems Large Companies Have with Managing C++ Dependencies and How to Solve Them. Here is a video recording of the talk: In particular, I talked about several vcpkg features that can help: Some stats f...
Microsoft C++ Team at CppCon 2024: Trip Report
The Microsoft C++ team attended CppCon, the largest C++ conference in the world. This year, the conference was held in Aurora, Colorado from September 16-20. Microsoft Booth Our team managed a booth from Monday to Thursday of the week. This gave us an amazing opportunity to interact with the C++ community and discuss many topics of interest as well as hear feedback from our customers. The following people worked at the booth (from left to right in the picture above): Microsoft works on several developer tools for C++, including the Visual Studio IDE, Visual Studio Code, the M...
Analyzing the Performance of the “Proxy” Library
This article analyzes the performance of the "Proxy" library in various scenarios, demonstrating its significant advantages in indirect invocations and lifetime management across different platforms.
Enhanced Breakpoint Expressions for C++ Debugging in Visual Studio
Conditional Breakpoints Performance Improvement Debugging C++ code can be a time-consuming process, especially when dealing with complex scenarios. As a developer, it's frustrating to go through extensive setup and wait for a specific conditional breakpoint to trigger so you can analyze your application in a specific state. In Visual Studio 2022 version 17.10, we optimized the implementation of conditional breakpoints in C++ to enhance performance. We further improved this in version 17.11 to boost performance even more. Key Improvements Conditional breakpoints in Visual Studio for C++ pause code execution w...
New Contextual Tools for GitHub Copilot in Visual Studio
Visual Studio 2022 17.11 now allows you to pass your entire workspace or specific classes and functions as context for GitHub Copilot Chat. By referencing your entire codebase, down to specific classes and functions, Copilot Chat can deliver refined and accurate results tailored to your code. @workspace for project references You can now use GitHub Copilot Chat to refer to your entire C++ project using the @workspace command. This feature allows you to ask questions about your project, and GitHub Copilot will provide you with detailed responses. An example use case for the @workspace command in GitHub C...
What’s New in vcpkg (September 2024)
This blog post summarizes changes to the vcpkg package manager as part of the 2024.09.23 and 2024.09.30 releases, 2024-09-18 and 2024-09-30 tool releases, as well as changes to vcpkg documentation throughout September. This month’s release includes some minor changes and bug fixes, 18 new ports, and 319 updates to existing ports. When updating vcpkg, we recommend moving to the 2024.09.30 release, which fixes some regressions in the 2024.09.23 release. Some stats for this period: vcpkg changelog (2024.09.23 & 2024.09.30 releases) The following notable changes were made in Septem...
Configure GitHub Copilot Access via Content Exclusion
Have you ever wanted greater control over the sensitive content AI-powered tools can access in your repositories? You can now customize Copilot’s access to your files with the newly announced GitHub Copilot Content Exclusion in both Visual Studio and Visual Studio Code. Through this new process you can configure Copilot to ignore certain files in your repository – such as sensitive files or information - when generating responses. Once content has been excluded from Copilot: GitHub Copilot’s granular control over content exclusion gives you the flexibility to enact company-wide security po...
Latest enhancements to Copilot workflows in Visual Studio: Move seamlessly from Copilot in Quick Info and more…
There have been new integrations added to Copilot workflows in Visual Studio to make it even more seamless to navigate between in-editor activities and the Chat window that has context of global workspace, conversational history, and more to get the most out of Copilot, wherever you are. With the latest updates, you can streamline your workflow with slight tweaks and follow-up questions, allowing Copilot to provide the most relevant set of suggestions for your workflows. These include enhancements to inline chat and code completions in 17.11 and Copilot in quick info in 17.12 Preview 1. Refine Completions...
Visual Studio at Unreal Fest Seattle 2024
Join us in-person at Unreal Fest Seattle 2024 with an in-depth look at how Visual Studio and GitHub Copilot can help modernize your Unreal Engine game development. Session Title: Modernizing Game Development with Visual Studio and AI Session Info: October 3rd, 2024, 2:00 PM-3:00 PM Pacific Time | Room 445 Abstract: Join Microsoft to learn how Visual Studio can speed up your iteration cycle from start to finish. Discover productivity tools for optimizing class structure memory layout; identify and rectify build issues with Build Insights integration; and explore performance enhancements. We'll also cover ...
Tailored Code Completions for C++ Developers: Fine-tuned models are now in limited public beta for GitHub Copilot Enterprise
GitHub recently announced that custom models are available for GitHub Copilot Enterprise users in limited public beta. Custom models are fine-tuned on your organization’s proprietary codebases and coding practices to provide more contextually relevant and consistent inline suggestions. How It Works: Security and Privacy in Custom Models The data used to train your organization’s custom model is never used to train another customer’s model, and your custom model is never shared. You can learn more about the fine-tuning process in GitHub’s announcement post and documentation. C and C++ Case Study: Microsoft Offi...
What’s New in Visual Studio Build Insights 17.12
We are excited to announce the latest Visual Studio 2022 17.12 Build Insights features. These updates provide developers with greater control and accuracy when diagnosing and optimizing C++ builds directly within Visual Studio. Download Visual Studio 2022 17.12 Preview We extend our thanks to the developer community, particularly our game studio partners, for providing invaluable feedback. Your input plays a vital role in shaping these new features. Learn more about Build Insights with our tutorials and documentation: Run Build Insights on Selected Files This feature is a game-c...
Microsoft C++ Team at CppCon 2024
As always our team will be at CppCon this year with a host of presentations. Many of us will also be present at our team’s booth in the main hall for the first four days of the conference. Come say hi and let us know if you have any questions about our talks, products, or anything else! You can also join the #visual_studio channel on the CppCon Discord to talk to us (note: to join, head to #directory channel first, and check the checkbox next to "Visual Studio" box). We’re also running a survey for attendees. If you have a moment, please take our survey. It's quick and you could win a duffel bag ...
Fix C++ warnings and errors with Copilot: Introducing AI-Assisted Code Fixes in Visual Studio
Stuck on an unfamiliar build error? Want to resolve your code errors quickly? Copilot is now integrated into Visual Studio error workflows to assist you with understanding and resolving C++ errors and warnings. To access this new feature, you will need an active Copilot subscription and the latest 17.11 GA version of Visual Studio. How does it work? There are two different entry points to accommodate where you are at in your error workflow: Semantically relevant code snippets from your active file and related files are automatically included as context to increase the relevant of the proposed fi...
Askia, an Ipsos company, achieved faster, reproducible builds with vcpkg
vcpkg is a free and open-source C/C++ package manager maintained by Microsoft and the C++ community that runs on Windows, macOS, and Linux. Over the years we have heard from companies using vcpkg to manage dependencies at enterprise-scale. In this interview, I spoke to Dimitri Rochette, a lead developer at Askia, an Ipsos company, about vcpkg’s impact on their team. After switching to vcpkg and CMake, Askia was able to reduce build times for their dependencies by using the vcpkg binary caching feature and reduce their code size by about 300,000 lines by eliminating project files, scripts, and copied depend...
What’s New in vcpkg (August 2024)
This blog post summarizes changes to the vcpkg package manager as part of the 2024.08.23 release, 2024-08-01 tool release, as well as changes to vcpkg documentation throughout August. This month’s release includes several notable changes as well as bug fixes and documentation improvements. The most notable changes were: Some stats for this period: Lastly, it’s CppCon season, and I am giving a talk on 10 Problems Large Companies Have with Managing C++ Dependencies and How to Solve Them on Tuesday, September 17, 2024, from 16:45-17:45 MDT. If you are coming to the conferenc...