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: A refreshed IDE UI Support for Visual Studio 2022 extensions out of the box Seamless upgrade experience from an older version of Visual Studio Microsoft C++ (MSVC) Build Tools v14.50: Greater C++23 conformance and runtime performance improvements AddressSanitizer support for ARM64 targets (Preview) IDE productivity improvements: New keyboard shortcuts Syntax highlighting for C++ attributes Class View substring searches and performance improvements Generate preprocessed output Enhanced controls in the bottom margin, including viewing and setting file encoding File exclusion options in Quick Find and Find in Files GitHub Copilot Chat: improved chat experience and new context menu options C++ project system changes (MSBuild and CMake) New clang-tidy configuration options Set command line arguments for the debugger from the toolbar Mermaid chart rendering Podman support in Container Tools Git tools improvementsYou 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 usYou 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.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 fromUser Feedback: Update UI of Visual Studio 2022 like the new Windows 11 UI - Developer CommunityThe new IDE includes a UI refresh, from icon and spacing changes to 11 new themes.Improved settings UIUser Feedback: Unified Settings feedback - Developer CommunityThe 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.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 extensionsVisual Studio 2026 works out of the box with your existing Visual Studio 2022 extensions.Upgrading existing projects to Visual Studio 2026Check 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.50Version 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 compilerC++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 libraryMicrosoft 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 . 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 vectorCompiler runtime performance improvementsWorking 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 Up to +3% faster runtime, as measured on Unreal Engine’s City Sample GameThreadAddressSanitizer 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 improvementsWe worked on several developer productivity improvements in 18.0, many in response to feedback from you!More keyboard shortcut consistency with other editorsUser Feedback: Adding a shortcut Ctrl+W to close the file in VS - Developer CommunitySeveral 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++ attributesUser Feedback: Syntax highlighting: use a unique color for C++ attributes - Developer CommunityC++ 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.Class View substring searches and performance improvementsUser Feedback: Search in Class View does not work, if search term is not the beginning of the class but part of it - Developer CommunityThe Class View window now supports substring searches, so you can have an easier time examining the architecture of your code.In addition, Class View’s performance has been improved for Unreal Engine projects.Generate preprocessed outputUser Feedback: Make it possible to see preprocessed C++ source code (easily in IDE) - Developer CommunityYou 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.Enhanced controls in the bottom marginUser Feedback: I wish Visual Studio 2022 able to show file encoding in the editor. - Developer CommunityThe 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.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.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.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 FindUser Feedback: Find and Replace -- option to exclude folders - Developer CommunityYou 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.GitHub Copilot ChatGitHub 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 ChatUser Feedback: Visual Studio GitHub Copilot line number difference - Developer CommunityCopilot 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 menuUser Feedback: Quickly Get Copilot Assistance from Your Context Menu - Developer CommunityA Copilot Actions option was added to the right-click context menu in the Visual Studio editor.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 windowYou can now ask Copilot to summarize uncommitted code changes, explain a specific commit, and more.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.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 questionsYou 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.This only works for public URLs and static HTML content.C++ Project SystemsVisual Studio 2026 continues to maintain native support for MSBuild, CMake, and Unreal Engine projects.C++20 default for new MSBuild projectsMany 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 2026Visual 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 projectsCMake 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.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 updatesUser Feedback: clang-tidy needs to use all cores available. - Developer Community Support extra args for clang-tidy - Developer CommunityThe 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.You can access these powerful new options from Project Properties > Code Analysis > Clang-Tidy.Debugging: Set command line arguments for any C++ projectsThe 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. A clear indication of an empty command line argument setting that retains your ability to easily identify and locate the toolbar dropdown.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 renderingUser Feedback: Mermaid support and code highlighting in markdown previews - Developer CommunityYou 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.Podman support in Container ToolsVisual 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.To get started, simply start Podman and open your solution in Visual Studio.Git toolsThe 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 2026Ready 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!