VisualStudio 2019版本16.8预览3附带了大量C++程序员的更新。 立即下载 尝试在一致性、性能和生产率方面的新添加。
我们改进了对编译器、标准库和IDE的主要C++ 20特性的支持。您现在可以在同一个项目中使用模块、概念、协程和(其中一些)范围!
C++ 20协同程序现在已完成,可在以下情况下使用std:c++latest. 当使用C++ 20协同程序时,应该包含
C++ 20模块也有功能完备和可用的下/std:c++latest. 这包括头单元和实验性的MSBuild支持,它们将自动计算出模块依赖项,并确保它们以正确的顺序生成。在我们的 C++ 20模块博客 .
我们现在支持C++ 20的大多数范围,并且正在努力完成所有的功能。此版本包括对大多数基于范围的算法的支持。您可以跟踪 这个GitHub问题 .
在范围之外,这个版本带来了几个新的STL特性和优化。一些例子:
- 标准::原子参考
- 我们的 标准::中点和标准::lerp 实现现在是constexpr。
- 标准::执行::取消查询 指示算法的执行可以在单个线程上矢量化。
- 我们已经将我们的 标准::反向拷贝 实施
你可以在我们的网站上找到所有的STL更新 变更日志 .
智能感知现在为C++ 20概念>和
条件平凡特殊成员函数 MSVC现在支持。
C11和C17的所有必需功能现在都支持使用/std:c11 and /std:c17 switches. 这包括:
- _布拉格马
- 限制
- _Noreturn和
- _Alignas、u Alignof和
- _通用和
支持 - _静态u断言
请注意,可选功能不受支持,因此我们不主张C99合规性。在我们的 C11/C17博客。
vcpkg公司 现在支持二进制缓存和清单文件。
舱单 是文件名为 vcpkg.json文件 应该在你的 项目目录 并且可以很容易地检查到源代码管理中。T 小时 安永 允许你 声明库依赖项 并进行配置,使vcpkg作为预构建步骤的一部分自动运行 为活动生成配置安装缺少的依赖项 .
下面是一个示例清单文件。
{ "name": "supertux", "version-string": "1.3.1", "dependencies": [ "boost-date-time", "boost-filesystem", "boost-format", "boost-locale", "boost-system", "curl", "freetype", "glew", "libogg", "libvorbis", "openal-soft", "sdl2", "sdl2-image" ] }
二进制缓存 保存您的 二进制文件 什么时候 这个 vcpkg首次编译了y。 缓存位置可以设置在 本地文件系统 到 遥远的 文件共享 或 人工制品储存 位置。
您可以阅读更多关于新特性的信息,包括实验性特性,如版本控制和注册,在我们的 vcpkg公告博客 .
我们已将VisualStudio附带的CMake版本升级到CMake 3.18。这将使您能够使用他们新的CMake分析功能,等等。阅读更多 他们的发行说明 .
现在可以直接从visualstudio在远程Linux系统或WSL上调试Linux内核转储。如果您运行的是“Windows商店”,但部署到Linux服务器并希望在熟悉的环境中诊断崩溃,这可能会很有帮助。
我们已经改进了Linux项目上缺少构建工具的错误报告。以前,您在编译、调试或使用IntelliSense时会遇到很多错误。现在,工具栏中会出现一个警告,并且会出现一个明确的错误,告诉您错误视图中缺少的工具。
编辑器中现在提供了基于IntelliSense驱动的代码linter的新警告和快速修复。您可以在工具->选项>文本编辑器> > C/C++ >代码风格>林特+固定器中配置它。您将能够得到警告和修复算术溢出,未初始化的局部变量,将整数除法的结果转换为浮点数,等等!
我们的代码分析工具现在支持sarif2.1标准:业界标准的静态分析日志格式。在幕后,sarif2.1支持visualstudio中的MSVC代码分析体验,包括常规和后台代码分析运行中的错误列表填充、绿色扭曲和修复错误。在不久的将来,我们计划根据SARIF日志中的信息,根据每个缺陷的严重程度(信息/警告/错误)对波形进行颜色编码,从而进一步改善IDE体验。您可以在中阅读有关SARIF格式的更多信息 官方规范 .
下载 Visual Studio 2019版本16.8预览版3 今天就来试试。 我们会的 很高兴收到您的来信,帮助我们确定优先级并为您构建合适的功能。我们可以通过以下评论联系到您, 开发者社区 , 还有推特( @视觉 ). 提交bug或建议特性的最佳方法是通过开发者社区。