November 11th, 2025
0 reactions

What’s New for C++ Developers in Visual Studio 2026 version 18.0

Augustin Popa
Senior Product Manager

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 about your Visual Studio experience on Visual Studio Developer Community or from the Help > Send Feedback menu in the IDE.

387 C++ Issues Fixed, 29 C++ Feature requests implemented over the past 12 months

Over the past 12 months, we fixed 387 C++ related issues and implemented 29 C++ related feature requests in Visual Studio. Many of the new features described in this blog post were suggested by you!

Refreshed UI with 11 themes to choose from

User Feedback: Update UI of Visual Studio 2022 like the new Windows 11 UI – Developer Community

The new IDE includes a UI refresh, from icon and spacing changes to 11 new themes.

Image of 11 different color schemes, or themes, available in Visual Studio 2026.

Improved settings UI

User Feedback: Unified Settings feedback – Developer Community

The Visual Studio settings (Tools > Options) UI is now integrated into the editor. You can also configure the settings from a JSON file accessible from the new UI.

Visual Studio integrated settings UI, bringing the Options cleanly into the editor, with the option available to edit user settings as JSON

Your settings will carry forward from older Visual Studio versions with roaming support. However, settings will no longer sync back to older products to ensure a cleaner migration path and forward compatibility.

Bring your Visual Studio 2022 extensions

Visual Studio 2022 extensions appear in the Extension Manager and will work in VS 2026

Visual Studio 2026 works out of the box with your existing Visual Studio 2022 extensions.

Upgrading existing projects to Visual Studio 2026

Check out our blog post, Upgrading C++ Projects to Visual Studio 2026, for an overview of what’s available to you to help you manage your transition to Visual Studio 2026, including continued binary compatibility for the C++ build tools and redistributable and the new Visual Studio setup assistant. Then, take a look at our updated porting and upgrading guide in our documentation.

Microsoft C++ (MSVC) Build Tools v14.50

Version 18.0 of the IDE ships with Microsoft C++ (MSVC) Build Tools version 14.50, offering our best conformance, build performance, and runtime performance story yet, along with a multitude of bug fixes. To get access to all the new language features, be sure to build with /std:c++latest or go with /std:c++23preview if you only need features up to and including C++23.

C++ language improvements in the compiler

C++23 language updates in the compiler are summarized in the C++ Language Updates in MSVC Build Tools v14.50 blog post. They include, but are not limited to:

  • P0849R8: auto(x): decay-copy in the language, for casting x into a prvalue as if passing it as a function argument by value.
  • P2437R1: Implemented C++23 preprocessing directive #warning to allow code authors to generate a diagnostic message without stopping translation the way #error does.
  • CWG Issue 2586: Explicit object parameter for assignment and comparison.
  • P2280R4: Using unknown pointers and references in constant expressions.

C++ language features and performance improvements in the standard library

Microsoft C++ standard library (STL) changes are summarized at: Changelog · microsoft/STL Wiki. As this is an open-source project, we welcome community contributions. With the help of the community, we implemented many improvements, including, but not limited to:

  • P0472R3: Put monostate in <utility>.
  • P3223R2: Making std::istream::ignore(n, delim) less surprising. This had surprising behavior if delim is a char with a negative value. This change removes the surprise to make code more robust.
  • Partial support for P3697R1: minor additions to standard library hardening to improve memory safety.
  • LWG-2503: multiline option should be added to syntax_option_type.
  • LWG-4186: regex_traits::transform_primary mistakenly detects typeid of a function.
  • LWG-4222: expected constructor from a single value missing a constraint.
  • LWG-4242: ranges::distance does not work with volatile iterators.
  • A multitude of performance improvements (see changelog for more):
    • Improved performance for regex matching.
    • Started using [[msvc::no_unique_address]] as a space optimization in several C++23 components.
    • Added and improved vectorized implementations of many types and functions.
    • Used Clang’s builtin __is_trivially_equality_comparable to improve the performance of equal(), ranges::equal, and many vectorized algorithms for more types.
    • Implemented an exponential speedup for minstd_rand and minstd_rand0's discard() member function
    • Improved std::includes() to have the same performance as ranges::includes
    • Improved the performance of count() for vector<bool>

Compiler runtime performance improvements

Working closely with our game developer partners, we invested in runtime performance improvements for code built with MSVC. We measured these improvements using benchmarks from Unreal Engine City Sample (RenderThread and GameThread):

  • Up to +6% faster runtime, as measured on Unreal Engine’s City Sample RenderThread

A bar graph showing improvements from Visual Studio 2022 version 17.14 to Visual Studio 2026 version 18.0 for MSVC runtime performance in Unreal Engine RenderThread for UE City Sample. The improvement was from 8.38 milliseconds to 7.90 milliseconds.

  • Up to +3% faster runtime, as measured on Unreal Engine’s City Sample GameThread

A bar graph showing improvements from Visual Studio 2022 version 17.14 to Visual Studio 2026 version 18.0 for MSVC runtime performance in Unreal Engine GameThread for UE City Sample. The improvement was from 18.06 milliseconds to 17.56 milliseconds.

AddressSanitizer support for ARM64 builds (Preview)

In Visual Studio 2019 we added AddressSanitizer support for code built with MSVC to help developers identify memory safety issues with zero false positives using the /fsanitize=address flag. At the time, the support applied to code built for x86 and x64 architectures. This support is now extended to projects targeting ARM64. This ARM64 support is in preview, and we will continue to refine it and fix any incoming bugs in future updates.

IDE productivity improvements

We worked on several developer productivity improvements in 18.0, many in response to feedback from you!

More keyboard shortcut consistency with other editors

User Feedback: Adding a shortcut Ctrl+W to close the file in VS – Developer Community

Several keyboard shortcuts have been added from VS Code and other editors to give you a more consistent experience as you switch between these environments. In the past, this included Ctrl + / to toggle line comments and Ctrl + Shift + P to open Feature Search. But the following shortcuts are new in 18.0:

  • Ctrl + W now closes the current tab (in addition to Ctrl + F4)
  • Ctrl + P now opens Code Search (in addition to Ctrl + T and Ctrl + ,)

Syntax highlighting for C++ attributes

User Feedback: Syntax highlighting: use a unique color for C++ attributes – Developer Community

C++ attributes are now colored in the editor, making your code more visually distinctive and easier to read. By default, they use the same theme color as user-defined types.

A screenshot of C++ attributes in the Visual Studio editor with colorization.

Class View substring searches and performance improvements

User Feedback: Search in Class View does not work, if search term is not the beginning of the class but part of it – Developer Community

The Class View window now supports substring searches, so you can have an easier time examining the architecture of your code.

A screenshot of the ClassView window in Visual Studio with a search for convexHull. Results include convexHull as a substring but do not have to be exact matches for the search term.

In addition, Class View’s performance has been improved for Unreal Engine projects.

Generate preprocessed output

User Feedback: Make it possible to see preprocessed C++ source code (easily in IDE) – Developer Community

You can right-click a C++ file in Solution Explorer and select Preprocess to instantly generate its preprocessed output, making it easy to debug macros and includes, see errors immediately, and avoid manual changes to project settings or interruptions to full project builds.

Screenshot of Solution Explorer in Visual Studio, where a cpp file was right-clicked to show the new Preprocess menu option.

Enhanced controls in the bottom margin

User Feedback: I wish Visual Studio 2022 able to show file encoding in the editor. – Developer Community

The bottom margin in the editor has been upgraded to be more informative and customizable. Line, column, and character position are now unified into a single display. Clicking it opens the Go To Line dialog for faster navigation. When working with multiple selections, you’ll see total counts for selections, characters, and lines. Hovering over the selection margin reveals detailed info per selection.

Screenshot of the bottom margin of the text editor in Visual Studio, showing cursor position, number of selected characters and lines, file settings like line break type, and file encoding format.

File encoding is now displayed in the margin for quick reference. You can also save or reopen a file using a specific encoding, which helps ensure proper display of special characters, supports multiple languages, and maintains consistent readability across systems.

Clicking the encoding margin opens a context menu where you can choose to save or reopen the file. Selecting an option will launch an encoding dialog with a dropdown list of available encodings to choose from.

Screenshot of the bottom margin of the text editor in Visual Studio with the new options to Reopen with Encoding or Save with Encoding.

A new context menu has been added to the margin, giving you full control over what information is shown. This menu includes all the bottom margins in the editor, from the zoom control all the way to the new encoding margin.

Screenshot of the bottom margin of the text editor in Visual Studio with the new options to turn on or off specific features like line, column, and character counts, selections, tabs or spaces, line endings, encodings, and more.

You can manage these settings through Tools > Options > Text Editor > General > Display > Show editing context in the editor. For quicker adjustments, right-click the bottom margin to open the new context menu and change what’s shown.

File exclusions in Find in Files / Quick Find

User Feedback: Find and Replace — option to exclude folders – Developer Community

You can now exclude files you never need to look at from Find in Files (Ctrl + Shift + F) and Quick Find (Ctrl + F). To set it up, go to Tools > Options > Environment > Search, and look for the new Exclude files from search results section. There, you can add, edit, or remove glob patterns to control exactly which files are left out of your search results.

Screenshot of the Visual Studio settings, specifically Search settings to configure file exclusions.

GitHub Copilot Chat

GitHub Copilot Chat allows you to use natural language to get answers to questions (Ask mode) or even implement changes for you automatically (Agent Mode). We made several improvements to this feature (listed below), and we also have 3 new features available in Private Preview: New GitHub Copilot capabilities for C++ developers: Upgrade MSVC, improve build performance, and refactor C++ code.

Better responses in Copilot Chat

User Feedback: Visual Studio GitHub Copilot line number difference – Developer Community

Copilot Chat is getting smarter with improved context for your everyday tasks. You can expect better results when searching your codebase and referencing specific lines in your code.

Copilot Actions in context menu

User Feedback: Quickly Get Copilot Assistance from Your Context Menu – Developer Community

A Copilot Actions option was added to the right-click context menu in the Visual Studio editor.

Screenshot of the Visual Studio editor right-click context menu displaying the new Copilot Actions: Explain, Optimize Selection, Generate Comments, Generate Tests, and Add to Chat.

You can use this to interact with a specific file or lines of code in Copilot Chat. You can ask Copilot to explain what the code does, make optimizations, generate comments or unit tests, or just reference it in the chat for you to add your own custom prompt.

Reference commits and changes in the Git Changes window

You can now ask Copilot to summarize uncommitted code changes, explain a specific commit, and more.

Screenshot of Copilot Chat zoomed in to show the #Git Changes context which can be used to have Copilot refer to specific changes tracked from Git.

You can reference uncommitted changes by adding #changes to your prompt or type #commit: to pull up a list of the most recent commits for you to select. You can also reference a specific commit id.

Screenshot of Copilot Chat after typing #commit: displaying a list of commits to choose from.

With the context of your changes or commits, you can then ask Copilot to answer questions in Ask Mode or perform tasks in Agent Mode like writing unit tests or finding bugs.

Reference URLs in your questions

You can paste a URL in the prompt box and Copilot will pull information from the web to prepare its response. For example, you can ask Copilot to write a readme file based on best practices from GitHub or to look at reference material while preparing an answer to a question.

Screenshot of Copilot Chat where the user asks it to migrate a project to C++ modules and provides a cppreference article for context. Copilot responds with instructions that utilize the information from the cppreference website.

This only works for public URLs and static HTML content.

C++ Project Systems

Visual Studio 2026 continues to maintain native support for MSBuild, CMake, and Unreal Engine projects.

C++20 default for new MSBuild projects

Many MSBuild projects generated using new project templates now target C++20 by default. This includes the Console App, Windows Desktop Application, Dynamic-Link Library, and Static Library.

CMake projects in Visual Studio 2026

Visual Studio 2026 now includes CMake 4.1.1 by default. CMake also includes a Visual Studio 2026 generator and modern SLNX projects, allowing you to build Visual Studio C++ projects directly from CMake.

Diagnostic Tools now support CMake projects

CMake projects now have native support for profiling tools including CPU Usage, Events Viewer, memory usage, and File IO tools in Visual Studio. The CPU Usage tool also includes Copilot-powered performance insights, helping you detect and resolve bottlenecks even faster.

Screenshot of the Performance Profiler with options to look at CPU Usage, Events Viewer, File IO, and Memory Usage. The profiler is loaded for a CMake project.

Tailored for game developers and performance-critical workflows, this update lets you:

  • Identify performance bottlenecks and optimize compute-heavy code with the CPU Usage Tool.
  • Track runtime events like exceptions, logs, and HTTP requests with the Events Viewer.
  • Analyze file access patterns, durations, and throughput with the File IO Tool.

Clang-tidy updates

User Feedback:

The clang-tidy code analysis tools in Visual Studio have new configuration options. You can allocate more processors to run code analysis as part of your build, speeding up your development workflow. Plus, you can add custom arguments to the command line to invoke clang-tidy, giving you complete control over your analysis setup.

Screenshot of the C++ project properties with Clang-Tidy selected. Displays properties for checks to enable or disable, additional options, prepend additional options, clang-tidy tool directory, and max number of processes.

You can access these powerful new options from Project Properties > Code Analysis > Clang-Tidy.

Debugging: Set command line arguments for any C++ projects

The ability to set command line arguments for the debugger from the toolbar has been expanded to include all .vcxproj, CMake, and Unreal Engine projects. The feature has also received the following improvements:

  • Go directly to the underlying debugger command line argument setting for your project type.

Screenshot of Visual Studio debugging dropdown toolbar listing several command line arguments like --help, --list-tests, and --list-reporters.

  • A clear indication of an empty command line argument setting that retains your ability to easily identify and locate the toolbar dropdown.

Screenshot of Visual Studio debugging dropdown toolbar set to No command-line arguments.

This feature is no longer tied to the Game Development with C++ workload and is available to all C++ developers without needing to install any additional workloads or components.

To learn more, take a look at the Pass command-line arguments documentation.

Mermaid chart rendering

User Feedback: Mermaid support and code highlighting in markdown previews – Developer Community

You can now render Mermaid charts in the markdown editor preview window, where you can provide your own Mermaid syntax or generate it with Copilot. This lets you visualize complex data structures and workflows in the IDE.

Screenshot of a Markdown file and corresponding Markdown preview side-by-side, with a Mermaid chart rendered.

Podman support in Container Tools

Visual Studio Container Tools now support Podman, a popular container management tool that provides a daemonless container engine. This allows you to run and manage containers using the Podman CLI directly from Visual Studio.

Screenshot of Container Tools UI and Podman Desktop.

To get started, simply start Podman and open your solution in Visual Studio.

Git tools

The Visual Studio Git tools also received some updates:

  • Copilot-generated code reviews now use updated reasoning models to provide more insightful and precise comments.
  • Code review comments are now generated for the entire change set at once rather than file-by-file, resulting in improved performance and a more comprehensive review.
  • When you view Copilot generated comments on your uncommitted changes, you will now see a list of comments in the Git Changes window. You can double click a comment to navigate to that line of code in the editor.
  • You can apply suggested code changes from a PR comment by clicking the sparkle button at the top right of the comment. If there aren’t any suggestions, you can request Copilot to suggest a change based on the comment.

Download Visual Studio 2026

Ready to get started? Try out Visual Studio 2026 version 18.0 today and feel free to share your feedback below! Also check out the release notes for a full list of what’s changed!

Author

Augustin Popa
Senior Product Manager

Product manager on the Microsoft C++ team, currently working on vcpkg.

0 comments