Skip to content

Commit e01e745

Browse files
committed
Update what's new 17.4 section
1 parent 804abd5 commit e01e745

File tree

1 file changed

+60
-2
lines changed

1 file changed

+60
-2
lines changed

docs/overview/what-s-new-for-visual-cpp-in-visual-studio.md

Lines changed: 60 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,71 @@
11
---
22
title: "What's new for C++ in Visual Studio"
33
description: "The new features and fixes in the Microsoft C/C++ compiler and tools in Visual Studio."
4-
ms.date: 09/29/2022
4+
ms.date: 11/08/2022
55
ms.technology: "cpp-ide"
66
ms.custom: intro-whats-new
77
---
88
# What's new for C++ in Visual Studio 2022
99

10-
Visual Studio 2022 brings many updates and fixes to the Microsoft C++ environment. We've added features and fixed many bugs and issues in the compiler and tools. The Visual Studio IDE also offers significant improvements in performance and productivity, and now runs natively as a 64-bit application. For more information on what's new in all of Visual Studio, visit [What's new in Visual Studio 2022](/visualstudio/ide/whats-new-visual-studio-2022?view=vs-2022&preserve-view=true). For information about what's new in the C++ docs, see [Microsoft C++ docs: What's new](whats-new-cpp-docs.md).
10+
Visual Studio 2022 brings many updates and fixes to the Microsoft C++ environment. We've added features and fixed many bugs and issues in the compiler and tools. The Visual Studio IDE also offers significant improvements in performance and productivity, and now runs natively as a 64-bit application.
11+
12+
For more information on what's new in all of Visual Studio, see [What's new in Visual Studio 2022](/visualstudio/ide/whats-new-visual-studio-2022?view=vs-2022&preserve-view=true). For information about what's new in the C++ docs, see [Microsoft C++ docs: What's new](whats-new-cpp-docs.md)
13+
14+
## What's new for C++ in Visual Studio version 17.4
15+
16+
For a summary of new features and bug fixes in Visual Studio in version 17.34, see [Visual Studio 2022 version 17.3 Release Notes](/visualstudio/releases/2022/release-notes-v17.4).
17+
18+
- Improved compiler error messages to provide more correct and useful information, especially for concepts.
19+
20+
- Added experimental MSVC flag **`/experimental:log<directory>`** to output SARIF build logs to the specified directory.
21+
22+
- Added support for C23 attributes to IntelliSense and continued progress in C++20 modules support.
23+
24+
- Improved indexing performance when opening a new solution. Large projects could see a 20-35% improvement from 17.3.
25+
26+
- Improved Named Return Value Optimization (NRVO):
27+
- NRVO is enabled for cases that involve exception handling or loops.
28+
- NRVO is enabled even under **`/Od`** if the user passes the **`/Zc:nrvo`** flag, or **`/std:c++20`** or later, or **`/permissive-`**.
29+
- You can now disable NRVO with the **`/Zc:nrvo-`** flag.
30+
31+
- Upgraded the version of LLVM shipped with Visual Studio to 15.0.1. For more information on what is available, see the [LLVM](https://releases.llvm.org/15.0.0/docs/ReleaseNotes.html) and [Clang](https://releases.llvm.org/15.0.0/tools/clang/docs/ReleaseNotes.html) release notes.
32+
33+
- Added support to Visual Studio for vcpkg artifacts with CMake projects. For projects that include a vcpkg manifest, the environment is activated automatically on project open. Learn more about this feature in the [vcpkg environment activation in Visual Studio](https://aka.ms/vsvcpkgenv) blog post.
34+
35+
- You can now use Dev Containers for your C++ projects. Learn more about this feature in our [Dev Containers for C++](https://aka.ms/vscppdevcontainer) blog post.
36+
37+
- IntelliSense now respects the order of pre-included headers when one is a PCH. Previously, when a PCH was used via **`/Yu`** and force-included via **`/FI`**, IntelliSense would always process it first, before any other headers included via **`/FI`**. This behavior didn't match the build behavior. With this change, **`/FI`** headers are processed in the order they're specified.
38+
39+
- Removed internal prefixes from CTest names in Test Explorer.
40+
41+
- Updated the version of CMake shipped with Visual Studio to version 3.24.1. For details of what is available, see the [CMake release notes](https://cmake.org/cmake/help/v3.24/release/3.24.html).
42+
43+
- Android SDK update:
44+
- Ant scripts have been removed, so users will no longer see Ant-based templates in the New Project dialog. For help migrating from Ant templates to Gradle templates, see [Migrating Builds From Apache Ant](https://docs.gradle.org/current/userguide/migrating_from_ant.html)
45+
- Added support for building with NDK 23 and 24
46+
- Updated NDK component to the LTS version 23
47+
48+
- Added vectorized implementations of `ranges::min_element()`, `ranges::max_element()`, and `ranges::minmax_element()`
49+
50+
- We continue to track the latest developments in C++ standardization. Support for these C++23 features is available by including [`/std:c++latest`](../build/reference/std-specify-language-standard-version.md) in your compiler options:
51+
- [P2302R4](https://wg21.link/p2302r4) `ranges::contains`, `ranges::contains_subrange`
52+
- [P2499R0](https://wg21.link/p2499r0) `string_view` Range Constructor Should Be `explicit`
53+
- [P0849R8](https://wg21.link/p0849r8) `auto(x)`: decay-copy In The Language
54+
55+
(The compiler part isn't implemented yet. The library part was implemented in C++20 mode when Ranges support was initially implemented.)
56+
- [P0881R7](https://wg21.link/p0881r7) `<stacktrace>`
57+
- [P2301R1](https://wg21.link/p2301r1) Add A `pmr` Alias For `std::stacktrace`
58+
- [P1328R1](https://wg21.link/p1328r1) `constexpr type_info::operator==()`
59+
- [P2440R1](https://wg21.link/p2440r1) `ranges::iota`, `ranges::shift_left`, `ranges::shift_right`
60+
- [P2441R2](https://wg21.link/p2441r2) `views::join_with`
61+
62+
- Added an option "Navigation after Create Declaration/Definition" to allow you to choose the navigation behavior of the Create Declaration/Definition feature. You can select between peeking (the default) or opening the document, or no navigation.
63+
64+
- Arm64 builds of Visual Studio now bundle Arm64 versions of CMake and Ninja.
65+
66+
- Added support for CMake Presets version 4. For details of what is available, see the [CMake release notes](https://cmake.org/cmake/help/v3.23/release/3.23.html#id6).
67+
68+
- Remote system connections using the [Connection Manager](../linux/connect-to-your-remote-linux-computer.md) now support SSH ProxyJump. ProxyJump is used to access an SSH host via another SSH host (for example, to access a host behind a firewall).
1169

1270
## What's new for C++ in Visual Studio version 17.3
1371

0 commit comments

Comments
 (0)