Java|盘点Visual Studio 2022 17.4 给C++开发者带来的新东西

Java|盘点Visual Studio 2022 17.4 给C++开发者带来的新东西

文章图片

Java|盘点Visual Studio 2022 17.4 给C++开发者带来的新东西

文章图片

Java|盘点Visual Studio 2022 17.4 给C++开发者带来的新东西

文章图片

Java|盘点Visual Studio 2022 17.4 给C++开发者带来的新东西

文章图片

Java|盘点Visual Studio 2022 17.4 给C++开发者带来的新东西

文章图片


今天 , 我们很高兴地宣布 , Visual Studio 2022 17.4版本正式可用 。 这篇文章 , 我将盘点一下那些对C++开发者相关的一些新功能 。
Arm64在17.3版本中 , Visual Studio已经添加了对Arm64的原生支持 。 在之后的版本中 , 我们继续添加了对更多开发场景的支持 , 在最新的17.4版本中 , Arm64原生工具链可以在生产环境中使用了 。
在工作负载中 , ”Desktop development with C++”和”Game development with C++”已默认开启对Arm64的原生开发支持 。
MSVC在新版本中 , 我们花了很大一部分精力来改进编译器的诊断信息输出 。 诸如Concepts和Ranges等新的C++功能为更具表现力的代码和定义更好的 API 提供了机会 。 但是 , 为了充分利用它们 , 需要对工具进行更好的诊断 , 以便可以查明和解决代码约束失败问题 。
有关所有详细信息 , 请参阅 Xiang Fan 的博客文章 , 但下面是改进的快速示例 , 显示了有关重载解析失败的更完整信息 , 以及有关给定约束失败原因的信息:

【Java|盘点Visual Studio 2022 17.4 给C++开发者带来的新东西】17.3版本中的错误提示

17.4版本中的错误提示

作为这项工作的一部分 , 我们还添加了实验性支持 , 用于将编译器诊断输出为 SARIF 。 这可以通过实验标志 /experimental:log 。
除了改进的诊断之外 , 我们还扩展了编译器的命名返回值优化 (NRVO) 功能 。 有关详细信息 , 请参阅Bran Hagger的博客文章 。 主要改进是为涉及异常处理或循环的情况启用 NRVO 。 例如 , 在 17.3 中 , 返回结果时的结果的复制/移动不会被省略 , 但现在将被省略 。

CMake 和 跨平台开发容器是打包运行应用程序的所有内容的好方法 。 通过 Dockerfile , 可以捕获所有先决条件 , 以便在部署和运行容器的任何位置都有一致的运行时环境 。 开发容器扩展了此概念 , 以捕获在容器中开发和构建应用程序所需的一切 。 现在可以将开发容器用于 Visual Studio 中的C++项目 。
使用连接管理器连接到远程系统现在支持 SSH 代理跳转 , 它用于通过另一个 SSH 主机访问 SSH 主机(例如 , 访问防火墙后面的主机) 。
测试资源管理器用于公开 CTest 测试的内部前缀 , 使列表更难阅读和导航 。 我们对此进行了改进 , 将它们全部分组到一个标题下 。 以下是之前和之后:

其他工具我们对某些工作负载中 Visual Studio 附带的其他工具也进行了一些更新 。
如果你在 Arm64 计算机上使用 Visual Studio , 你可以通过 Visual Studio 安装程序中的 CMake 组件获得 CMake 和 Ninja 的 Arm64 版本 。
我们已将 CMake 版本更新到版本 3.24.1 。 此版本附带了许多新功能 , 包括用于删除 CMake 缓存的 –fresh CLI 标志、if 表达式中的路径比较以及 CMakePresets.json 版本 5 。 我们将在 Visual Studio 2022 的 17.5 版本中添加对 CMakePresets.json 版本 5 的支持 , 但 17.4 增加了对版本 4 的支持 。 请参阅 CMake 发行说明 , 了解所有新的好东西 。