{"id":35102,"date":"2025-02-11T18:58:57","date_gmt":"2025-02-11T18:58:57","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cppblog\/?p=35102"},"modified":"2025-02-11T18:58:57","modified_gmt":"2025-02-11T18:58:57","slug":"whats-new-for-c-developers-in-visual-studio-2022-17-13","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/whats-new-for-c-developers-in-visual-studio-2022-17-13\/","title":{"rendered":"What\u2019s New for C++ Developers in Visual Studio 2022 17.13"},"content":{"rendered":"<p>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\u00a0<a href=\"https:\/\/visualstudio.microsoft.com\/downloads\/\" target=\"_blank\" rel=\"noopener\">Visual Studio downloads page\u00a0<\/a>or upgrade your existing installation by following the\u00a0<a href=\"https:\/\/learn.microsoft.com\/en-us\/visualstudio\/install\/update-visual-studio?view=vs-2022\" target=\"_blank\" rel=\"noopener\">Update Visual Studio Learn page<\/a>.<\/p>\n<h2>Standard Library and Compiler<\/h2>\n<p>On the compiler side, we\u2019ve implemented C++23\u2019s <code>size_t<\/code> literal suffix. The suffix <code>uz<\/code> or <code>UZ<\/code> (or any permutation of these) will help you avoid sneaky truncations or signed comparison mismatches, especially when writing loops. For example:<\/p>\n<pre class=\"prettyprint language-default\"><code class=\"language-cpp\">\/\/Infinite loop if v.size &gt; max unsigned int\r\nfor (auto i = 0u; i &lt; v.size(); ++i) {\r\n    \/\/Use v and v[i]\r\n}\r\n\r\n\/\/Fine due to uz literal\r\nfor (auto i = 0uz; i &lt; v.size(); ++i) {\r\n    \/\/Use v and v[i]\r\n}<\/code><\/pre>\n<p>Note that, while this feature is available in our MSVC compiler, it is not yet supported in the EDG compiler that powers IntelliSense, so you may see red squiggles in your editor until support is added.<\/p>\n<p>For all of the compiler improvements shipped in VS 2022 17.13, see <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/msvc-compiler-updates-in-visual-studio-2022-version-17-13\">MSVC Compiler Updates in Visual Studio 2022 version 17.13<\/a>.<\/p>\n<p>Our standard library has too many improvements to list in this blog post, so check out the <a href=\"https:\/\/github.com\/microsoft\/STL\/wiki\/Changelog#vs-2022-1713\">changelog<\/a> for all the details. Thanks to everyone in the community who contributed to this release! I\u2019ve picked out some highlights below.<\/p>\n<p>The feature I\u2019m most excited about is <code>std::generator<\/code>. This brings some long-awaited standard library support for coroutines. A little example from <a href=\"https:\/\/wg21.link\/p2502r2\">the paper<\/a>:<\/p>\n<pre class=\"prettyprint language-cpp\"><code class=\"language-cpp\">std::generator&lt;int&gt; fib() {\r\n    auto a = 0, b = 1;\r\n    while (true) {\r\n        co_yield std::exchange(a, std::exchange(b, a + b));\r\n    }\r\n}\r\n\r\nint answer_to_the_universe() {\r\n    auto rng = fib() | std::views::drop(6) | std::views::take(3);\r\n    return std::ranges::fold_left(std::move(rng), 0, std::plus{});\r\n}<\/code><\/pre>\n<p>The <code>fib<\/code> function is a coroutine (because it uses the <code>co_yield<\/code> keyword). Whenever the <code>co_yield<\/code> statement is executed, <code>fib<\/code> is suspended and the value is returned to the caller. The <code>fib<\/code> coroutine can then be resumed later to produce more values, without requiring any manual state handling from the programmer. As you can see from the next function, <code>std::generator<\/code> is compatible with ranges, so we can pipe it into some range adaptors from the standard library.<\/p>\n<p>Also in the area of conformance, we implemented two papers that improve the performance of <code>std::print<\/code>: <a href=\"https:\/\/wg21.link\/p3107r5\">P3107R5<\/a> and <a href=\"https:\/\/wg21.link\/P3235R3\">P3235R3<\/a>.<\/p>\n<p>We\u2019ve improved the build throughput of <code>&lt;queue&gt;<\/code>, <code>&lt;stack&gt;<\/code>,<code> &lt;stacktrace&gt;<\/code>, and <code>&lt;thread&gt;<\/code> by not including all of <code>&lt;format&gt;<\/code>.\u00a0For the same reason, we\u2019ve moved <code>system_clock<\/code>,\u00a0<code>high_resolution_clock<\/code>, and\u00a0<code>chrono_literals<\/code>\u00a0from a commonly-included internal header to\u00a0<code>&lt;chrono&gt;<\/code>. This has source-breaking impact. If you see compiler errors complaining that it doesn&#8217;t recognize\u00a0chrono\u00a0types like\u00a0<code>system_clock<\/code>\u00a0or UDLs like\u00a0<code>1729ms<\/code>, you need to include\u00a0<code>&lt;chrono&gt;<\/code>\u00a0specifically, instead of assuming that headers like\u00a0<code>&lt;thread&gt;<\/code>\u00a0will drag it in.<\/p>\n<p>We have also continued our work in improving vectorization across the standard library. This release comes with improvements for the following types and functions:<\/p>\n<ul>\n<li><code>(ranges::)find_end<\/code><\/li>\n<li><code>basic_string::(r)find<\/code><\/li>\n<li><code>adjacent_difference<\/code><\/li>\n<li><code>bitset<\/code><\/li>\n<li><code>basic_string::find_last_of<\/code><\/li>\n<li><code>(ranges::)remove<\/code><\/li>\n<\/ul>\n<h2>C++ Productivity<\/h2>\n<h3>Unreal Engine integration updates<\/h3>\n<p>We have made a series of updates for the Unreal Engine integration in Visual Studio:<\/p>\n<ul>\n<li>We added two new options in\u00a0<strong>Tools &gt; Options<\/strong>\u00a0that allow you to specify Code Analysis with Unreal Header Tool for both header and source files. To enhance performance, analysis of source files is disabled by default.<\/li>\n<li>You can now specify\u00a0<em>Public<\/em>\u00a0and\u00a0<em>Private<\/em>\u00a0folders when using the\u00a0<em>Add Class<\/em>\u00a0wizard, ensuring that your classes are created in the correct folder structure.<\/li>\n<\/ul>\n<p>If you want to learn more about the Visual Studio support for Unreal Engine, check out our <a href=\"https:\/\/learn.microsoft.com\/en-us\/visualstudio\/gamedev\/unreal\/get-started\/vs-tools-unreal-overview\">Unreal Engine Overview<\/a> page.<\/p>\n<h3>C++23 Preview Project Setting<\/h3>\n<p>You can now enable a\u00a0<strong>preview<\/strong>\u00a0of our C++23 implementation in Visual C++ directly from your project settings! This new setting unlocks access to the latest features we&#8217;ve implemented of the C++23 standard. As this is a preview of C++23 features, those new features will have limited support and may change in future releases.<\/p>\n<p><img decoding=\"async\" width=\"784\" height=\"547\" class=\"wp-image-35103\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m.png\" alt=\"A screenshot of a computer AI-generated content may be incorrect.\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m.png 784w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-300x209.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-768x536.png 768w\" sizes=\"(max-width: 784px) 100vw, 784px\" \/><\/p>\n<p>For more details and instructions, check out\u00a0<a href=\"https:\/\/learn.microsoft.com\/cpp\/build\/reference\/std-specify-language-standard-version\">our documentation<\/a>.<\/p>\n<h3>New Code Generation Property Page Settings for x86 and x64<\/h3>\n<p>Vector Length Property: Configure vector lengths for code generation on x86 and x64 directly in your C++ project settings by going to <strong>Configuration<\/strong> <strong>Properties &gt; C\/C++ &gt; Code Generation<\/strong>.<\/p>\n<p><img decoding=\"async\" width=\"778\" height=\"511\" class=\"wp-image-35104\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-1.png\" alt=\"A screenshot of a computer AI-generated content may be incorrect.\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-1.png 778w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-1-300x197.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-1-768x504.png 768w\" sizes=\"(max-width: 778px) 100vw, 778px\" \/><\/p>\n<p>AVX10.1\u00a0Support: Unlock the power of\u00a0AVX10.1\u00a0with a new entry in Enable Enhanced Instruction Set, adding the\u00a0\/arch:AVX10.1\u00a0flag to your builds.<\/p>\n<p><img decoding=\"async\" width=\"784\" height=\"511\" class=\"wp-image-35105\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-program-ai-generated-c.png\" alt=\"A screenshot of a computer program AI-generated content may be incorrect.\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-program-ai-generated-c.png 784w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-program-ai-generated-c-300x196.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-program-ai-generated-c-768x501.png 768w\" sizes=\"(max-width: 784px) 100vw, 784px\" \/><\/p>\n<p>Check out the\u00a0<a href=\"https:\/\/learn.microsoft.com\/cpp\/build\/reference\/vlen\">documentation<\/a>\u00a0for details.<\/p>\n<h3>Support for CMake Presets v9<\/h3>\n<p>Visual Studio now supports CMake Presets v9. This latest version of CMake presets introduces several documented versions of macro expansions in the\u00a0include\u00a0field of a preset. Read more at the\u00a0<a href=\"https:\/\/cmake.org\/cmake\/help\/latest\/manual\/cmake-presets.7.html#macro-expansion\">official CMake documentation<\/a>.<\/p>\n<h3>Specify Linux timeout settings for C++<\/h3>\n<p>We have added support for specifying a minimum timeout period for your remote machines that you are connected to via the Connection Manager in Visual Studio. To learn more about adding a remote connection in Visual Studio, please see\u00a0<a href=\"https:\/\/learn.microsoft.com\/cpp\/linux\/connect-to-your-remote-linux-computer\">our C++ Linux documentation<\/a>.<\/p>\n<p>You can specify the timeout period in the Command Prompt in Visual Studio, using the new property\u00a0<code>MinTimeoutSeconds<\/code>. For example, to set the timeout period to 1 minute, you can use the following command:<\/p>\n<pre class=\"prettyprint language-default\"><code class=\"language-default\">ConnectionManager modify &lt;connection-id&gt; --property MinTimeoutSeconds=60<\/code><\/pre>\n<h2>General Productivity<\/h2>\n<h3>Set Default File Encoding<\/h3>\n<p>Visual Studio now allows you to set the default file encoding for saving files. This feature ensures that your preferred encoding is used whenever possible.<\/p>\n<p>To set the default encoding, navigate to <strong>Tools &gt; Options &gt; Environment &gt; Documents<\/strong>. There, you will find an option titled <strong>Save files with the following encoding<\/strong>.<\/p>\n<p><img decoding=\"async\" width=\"500\" height=\"165\" class=\"wp-image-35106\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/word-image-35102-4.png\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/word-image-35102-4.png 500w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/word-image-35102-4-300x99.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/p>\n<h3>Horizontal Scrollbar Visibility Improvements<\/h3>\n<p>The horizontal scrollbar in the editor now repositions itself to always be accessible, even when space is limited. You can customize this behavior with the <strong>Tools &gt; Options &gt; Text Editor &gt; Advanced &gt; Editor horizontal scrollbar location<\/strong> option.<\/p>\n<p><img decoding=\"async\" width=\"570\" height=\"115\" class=\"wp-image-35107\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/word-image-35102-5.png\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/word-image-35102-5.png 570w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/word-image-35102-5-300x61.png 300w\" sizes=\"(max-width: 570px) 100vw, 570px\" \/><\/p>\n<h3>Word Wrap Indentation<\/h3>\n<p>You can now specify whether lines that wrap in the editor should be indented.\u00a0Enable this with the <strong>Tools &gt; Options &gt; Text Editor &gt; General &gt;<\/strong> <strong>Automatically indent when word wrap is enabled <\/strong>option.<\/p>\n<p><strong><img decoding=\"async\" width=\"615\" height=\"139\" class=\"wp-image-35108\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/word-image-35102-6.png\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/word-image-35102-6.png 615w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/word-image-35102-6-300x68.png 300w\" sizes=\"(max-width: 615px) 100vw, 615px\" \/><\/strong><\/p>\n<h3>Recent Files in Code Search<\/h3>\n<p>When you open\u00a0Code Search\u00a0without a query, you&#8217;ll see a list of your recently navigated files. These include the files you opened through Code Search, but also any other files you opened in the solution. This makes it easy to jump back to a file you were recently working on without having to remember or type the file name.<\/p>\n<p><img decoding=\"async\" width=\"793\" height=\"499\" class=\"wp-image-35109\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screen-shot-of-a-computer-ai-generated-content.png\" alt=\"A screen shot of a computer AI-generated content may be incorrect.\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screen-shot-of-a-computer-ai-generated-content.png 793w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screen-shot-of-a-computer-ai-generated-content-300x189.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screen-shot-of-a-computer-ai-generated-content-768x483.png 768w\" sizes=\"(max-width: 793px) 100vw, 793px\" \/><\/p>\n<h3>Enhanced Line and Column Navigation<\/h3>\n<p>In\u00a0Code Search, we&#8217;ve significantly enhanced line navigation capabilities. The following formats are now supported:<\/p>\n<ul>\n<li>:line\u00a0to navigate to a specific line in the active document<\/li>\n<li>:line,col\u00a0to navigate to a specific line and column in the active document<\/li>\n<li>file:line\u00a0to navigate to a specific line in a specified file<\/li>\n<li>file:line,col\u00a0to navigate to a specific line and column in a specified file<\/li>\n<li>file(line)\u00a0to navigate to a specific line in a specified file<\/li>\n<li>file(line,col)\u00a0to navigate to a specific line and column in a specified file<\/li>\n<\/ul>\n<p><img decoding=\"async\" width=\"648\" height=\"496\" class=\"wp-image-35110\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-2.png\" alt=\"A screenshot of a computer AI-generated content may be incorrect.\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-2.png 648w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-2-300x230.png 300w\" sizes=\"(max-width: 648px) 100vw, 648px\" \/><\/p>\n<h2>Debugging &amp; Diagnostics<\/h2>\n<h3>Targeted Instrumentation<\/h3>\n<p>The Visual Studio profiler&#8217;s instrumentation tool now supports targeted instrumentation for native code, allowing you to select specific classes and functions for detailed analysis.<\/p>\n<p>To access this tool, select <strong>Debug &gt; Performance Profiler\u2026 &gt; Instrumentation<\/strong>.<\/p>\n<p><strong><img decoding=\"async\" width=\"392\" height=\"399\" class=\"wp-image-35111\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-3.png\" alt=\"A screenshot of a computer AI-generated content may be incorrect.\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-3.png 392w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-3-295x300.png 295w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-3-24x24.png 24w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-3-48x48.png 48w\" sizes=\"(max-width: 392px) 100vw, 392px\" \/><\/strong><\/p>\n<h3>Color-Coded Swim Lanes for CPU Profiling<\/h3>\n<p>The Visual Studio profiler&#8217;s CPU Usage tool now supports multi-process analysis, displaying performance graphs with distinct color coding for each process in swim lanes.<\/p>\n<p>The graphs are displayed as stacked area charts. You also have the option to filter processes using a dropdown on the top left, enabling focused analysis.<\/p>\n<p><strong><img decoding=\"async\" width=\"1142\" height=\"189\" class=\"wp-image-35112\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/word-image-35102-10.png\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/word-image-35102-10.png 1142w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/word-image-35102-10-300x50.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/word-image-35102-10-1024x169.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/word-image-35102-10-768x127.png 768w\" sizes=\"(max-width: 1142px) 100vw, 1142px\" \/><\/strong><\/p>\n<h2>Git tooling<\/h2>\n<h3>Add comments on pull requests<\/h3>\n<p>You can now add new comments to pull request files on the checked-out branch. This was a top request for the pull request experience and is the latest in a series of improvements to the pull request experience in Visual Studio.<\/p>\n<p>Enable the feature flags\u00a0<strong>Pull Request Comments<\/strong>\u00a0and\u00a0<strong>Pull Request Add Comment<\/strong> in <strong>Tools &gt; Options &gt; Environment &gt; Preview Features<\/strong>, check out any branch with an active pull request, and select\u00a0<strong>Show comments in files<\/strong>\u00a0in the info bar. This will activate the pull request comments experience in the editor.<\/p>\n<p><strong><img decoding=\"async\" width=\"798\" height=\"172\" class=\"wp-image-35113\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-4.png\" alt=\"A screenshot of a computer AI-generated content may be incorrect.\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-4.png 798w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-4-300x65.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-4-768x166.png 768w\" sizes=\"(max-width: 798px) 100vw, 798px\" \/><\/strong><\/p>\n<h3>Review Changes with Copilot<\/h3>\n<p>You can now request a code review from GitHub Copilot from the Git Changes window.<\/p>\n<p><img decoding=\"async\" width=\"323\" height=\"108\" class=\"wp-image-35114\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-5.png\" alt=\"A screenshot of a computer AI-generated content may be incorrect.\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-5.png 323w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-5-300x100.png 300w\" sizes=\"(max-width: 323px) 100vw, 323px\" \/><\/p>\n<p>The model will look for potential issues and create comments for them:<\/p>\n<p><strong><img decoding=\"async\" width=\"676\" height=\"176\" class=\"wp-image-35115\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screen-shot-of-a-computer-ai-generated-content-1.png\" alt=\"A screen shot of a computer AI-generated content may be incorrect.\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screen-shot-of-a-computer-ai-generated-content-1.png 676w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screen-shot-of-a-computer-ai-generated-content-1-300x78.png 300w\" sizes=\"(max-width: 676px) 100vw, 676px\" \/><\/strong><\/p>\n<p>To use this feature, ensure you have the following feature flags turned on:<\/p>\n<ul>\n<li><strong>Tools<\/strong>\u00a0&gt;\u00a0<strong>Options<\/strong>\u00a0&gt;\u00a0<strong>Preview Features<\/strong>\u00a0&gt;\u00a0<strong>Pull Request Comments<\/strong><\/li>\n<li><strong>Tools<\/strong>\u00a0&gt;\u00a0<strong>Options<\/strong>\u00a0&gt;\u00a0<strong>GitHub<\/strong>\u00a0&gt;\u00a0<strong>Copilot<\/strong>\u00a0&gt;\u00a0<strong>Source Control Integration<\/strong>\u00a0&gt;\u00a0<strong>Enable Git preview features<\/strong>.<\/li>\n<\/ul>\n<h3>View and Manage Git Tags<\/h3>\n<p>You can now view and manage Git tags directly from the Git Repository window.<\/p>\n<p><img decoding=\"async\" width=\"398\" height=\"414\" class=\"wp-image-35116\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-6.png\" alt=\"A screenshot of a computer AI-generated content may be incorrect.\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-6.png 398w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-6-288x300.png 288w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-6-24x24.png 24w\" sizes=\"(max-width: 398px) 100vw, 398px\" \/><\/p>\n<h2>IDE<\/h2>\n<h3>Preserve Font Preferences Across Themes<\/h3>\n<p>Your font face and size choices are now retained when switching themes in Visual Studio. The colors of your fonts remain linked to the theme.<\/p>\n<p>This feature is enabled by default. If you prefer the previous behavior, toggle the <strong>Tools &gt; Manage Preview Features &gt; Separate font settings from color theme selection <\/strong>option.<\/p>\n<h3>New Ways to Sign In With GitHub<\/h3>\n<p>You can now sign in to your GitHub account either from the first launch configuration dialog, or the \u201cSign in\u201d button in Visual Studio.<\/p>\n<p><img decoding=\"async\" width=\"500\" height=\"281\" class=\"wp-image-35117\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/word-image-35102-15.png\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/word-image-35102-15.png 500w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/word-image-35102-15-300x169.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/p>\n<h3>Manage multiple GitHub accounts<\/h3>\n<p>You can now manage multiple GitHub accounts from Visual Studio. To do so, click <strong>Add another account<\/strong> in either the profile card menu accessible near the window controls of Visual Studio, or in <strong>File &gt; Account Settings<\/strong>. If you have multiple GitHub accounts, Visual Studio will default to the one marked as <em>active<\/em> for GitHub-aware features, such as version control and GitHub Copilot.<\/p>\n<p><img decoding=\"async\" width=\"374\" height=\"353\" class=\"wp-image-35118\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-7.png\" alt=\"A screenshot of a computer AI-generated content may be incorrect.\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-7.png 374w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-7-300x283.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-7-24x24.png 24w\" sizes=\"(max-width: 374px) 100vw, 374px\" \/><\/p>\n<h2>GitHub Copilot<\/h2>\n<h3>GitHub Copilot Free<\/h3>\n<p>GitHub Copilot Free is now available. You get 2,000 code completions and 50 chat requests per month at no cost.\u00a0Go to <a href=\"https:\/\/learn.microsoft.com\/visualstudio\/ide\/copilot-free-plan\">Microsoft Learn<\/a> to find out all the details.<\/p>\n<h3>Better AI code completions for C++<\/h3>\n<p>GitHub Copilot code completions provide autocomplete suggestions inline as you code. To enhance the experience of C++ developers, we&#8217;ve updated GitHub Copilot to include other relevant files as context. This improvement helps reduce hallucinations while offering more relevant and accurate suggestions and is aligned with the current GitHub Copilot experience for C++ in VS Code.<\/p>\n<h3>GitHub Copilot Edits for Working Across Files<\/h3>\n<p>GitHub Copilot Edits is a new feature that helps make changes that touch multiple files in your project. To start a new Edits session, click the <strong>Create new edit session<\/strong> at the top of the GitHub Copilot Chat window:<\/p>\n<p><img decoding=\"async\" width=\"501\" height=\"87\" class=\"wp-image-35119\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-8.png\" alt=\"A screenshot of a computer AI-generated content may be incorrect.\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-8.png 501w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-8-300x52.png 300w\" sizes=\"(max-width: 501px) 100vw, 501px\" \/><\/p>\n<p>Describe the changes you want to make, and Copilot will suggest the relevant edits. You can then preview them one-by-one and accept the ones you want or make corrections.<\/p>\n<p><strong><img decoding=\"async\" width=\"490\" height=\"548\" class=\"wp-image-35120\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-9.png\" alt=\"A screenshot of a computer AI-generated content may be incorrect.\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-9.png 490w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/02\/a-screenshot-of-a-computer-ai-generated-content-m-9-268x300.png 268w\" sizes=\"(max-width: 490px) 100vw, 490px\" \/><\/strong><\/p>\n<h2>Send us your feedback<\/h2>\n<p>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\u00a0<a href=\"https:\/\/developercommunity.visualstudio.com\/cpp\" target=\"_blank\" rel=\"noopener\">Visual Studio Developer Community<\/a>. You can also reach us via email at\u00a0<a href=\"mailto:visualcpp@microsoft.com\">visualcpp@microsoft.com<\/a>.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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\u00a0Visual Studio downloads page\u00a0or upgrade your existing installation by following the\u00a0Update Visual Studio Learn page. Standard Library and Compiler [&hellip;]<\/p>\n","protected":false},"author":706,"featured_media":35994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[270,1],"tags":[],"class_list":["post-35102","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-announcement","category-cplusplus"],"acf":[],"blog_post_summary":"<p>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\u00a0Visual Studio downloads page\u00a0or upgrade your existing installation by following the\u00a0Update Visual Studio Learn page. Standard Library and Compiler [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/35102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/706"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=35102"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/35102\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/35994"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=35102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=35102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=35102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}