Visual Studio 2017 15.5版中的MSVC一致性改进

VisualStudio 15.5预览4中包含的MSVC工具集包括许多C++一致性改进。在整个VS2015和VS2017版本中 我们关注的是与C++标准的一致性,包括C++ 17的特性。 . VS2017版本15.5, MSVC已经实现了C++核心语言和库功能的75%左右。 . 这些功能可以通过 使用/std:c++17 版本切换 .

null
  • 编译器中值得注意的完整功能包括:
    • VS调试器中支持的结构化绑定
    • constexpr 兰巴斯
    • if constexpr
    • 内联变量
    • 折叠表达式
    • 添加 noexcept 到类型系统
  • 我们对标准库实施的显著变化包括:
    • not_fn()
    • 重写 enable_shared_from_this
    • 拼接地图和集合
    • 正在删除中的分配器支持 std::function
    • shared_ptr<T[]> , shared_ptr<T[N]>
    • STL的内联变量
    • 删除动态异常规范
    • 贬抑 shared_ptr::unique()
    • 贬抑 <codecvt>
    • 废弃库零件

请注意,其中一些功能包含在15.3周期中,并在15.5周期中完成。

我们在修复旧的一致性问题方面也取得了重大进展,包括表达式SFINAE修复, constexpr 完整性,以及 大多数两阶段名称查找案例 .

最后,就目前的技术规范,我们已经根据C++标准委员会的要求进行了语法改变。VS2017版本15.5中的MSVC编译器实现了对夏季会议上请求的模块接口的语法更改。

你现在加上 export 在模块接口的声明中。例如,你写这个

      export module FileIO;      export File OpenFile(const Path&);

声明的模块接口 FileIO 你以前写过的地方

      module FileIO;      export File OpenFile(const Path&);

更完整的信息 MSVC的C++一致性改进可以在McSoSt.com文档中找到。 在即将到来的 斯蒂芬T的博客文章。拉瓦维 .

新项目的一致性模式默认打开。

我们已经启用了 /permissive- 默认情况下,符合VisualC++中新建项目的一致性模式,使您能够编写更接近C++标准一致性的代码。 这种模式禁用了多年来在MSVC已经存在的不符合C++的构造。您可以进一步了解我们的一致性模式和 /permissive- 控制它的开关 在这篇博文中 在docs.microsoft.com上 .

若要启用旧项目中的一致性模式(或在新项目中禁用),只需更改ProjtProjks> C/C++ >语言>一致性模式设置:

图片[1]-Visual Studio 2017 15.5版中的MSVC一致性改进-yiteyi-C++库

如果您在未安装VisualStudio的计算机上构建,并且需要编辑 .vcxproj 直接地,你会发现设置是由ConformanceMode标签控制的。请记住,对于项目中的每个平台配置,此标记只存在一次。下面是一个例子 .vcxproj 文件:

[xml文件]Level3已禁用truetrue[/xml]

从WindowsFallCreatorsSDK(10.0.16299.0)开始,一致性模式几乎与最新Windows工具包中的所有头文件兼容。单个一致性特征可以由更细粒度的 /Zc一致性开关 .

MSVC工具集版本号增加到14.12

由于VS2017版本15.5附带的MSVC工具集中包含了大量的一致性改进和错误修复,我们将版本号从14.11增加到14.12。这个小版本表明 VS2017 MSVC工具集与VS2015 MSVC工具集二进制兼容 ,使VS2015用户更容易升级。

VS2017版本15.5包括对VS2017中MSVC工具集的第三次重要更新。VS2017 RTW发布的第一个更新。第二次更新是更新版本15.3。以下是MSVC工具集版本和编译器版本,以供参考( _理学硕士 )在VS2015到VS2017的每个版本中(请注意,由于历史原因,MSVC编译器版本比VisualStudio中显示的MSVC工具集版本高5。)

Visual Studio版本 MSVC工具集版本 MSVC编译器版本( _MSC_VER )
VS2015和更新1、2和3 VS中的v140;版本14.00 1900
VS2017,版本15.1和15.2 v141在VS;版本14.10 1910
VS2017,版本15.3和15.4 v141在VS;版本14.11 1911
VS2017,版本15.5 v141在VS;版本14.12 1912

最后

在visualstudio版本15.5预览版4中试用MSVC编译器,让我们知道您的想法!一如既往,我们可以通过以下评论和电子邮件联系到您( visualcpp@microsoft.com )你可以通过 帮助>报告产品中的问题 ,或通过 开发者社区 . 你也可以在Twitter上找到我们( @视觉 )还有Facebook( msftvisualcpp软件 ).

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享