VS2022官宣C20标准库完整版本

今天我们非常高兴地宣布,稳定版本的C++20标准库(STL)现已在VSv17.2和VSv16.11.14这两个版本可用。特别是,这个版本包括了C++标准委员会批准的几项针对C++20标准库的缺陷报告(DR)提案,这些提案最近在年10月对format和ranges进行了大量的设计修改。现在,你可以在生产环境中以二进制兼容的方式使用完整的C++20功能列表,并与其他受支持的语言版本模式兼容。

C++20完整版本…再一次大忽悠?

经常看我们文章的读者应该知道,在不久之前,我们宣布过MSVC已经为VisualStudiov16.11.0完成了C++20中的所有功能,并且我们添加了/std:c++20选项以表明大多数C++20功能已稳定并可以在生产环境中使用。那个时候,我们提到,在/std:c++20下提供一些库功能(format,ranges以及chrono)会延迟一段时间才能支持,因为我们知道标准委员会正在进行这部分的审议工作。这些功能继续仅在/std:c++latest下可用,而标准委员会最终确定了设计修改,然后我们实现了它们。

缺陷报告(DefectReports)

DR包括对format和ranges这两个头文件的源码和ABI兼容性的修改。自开源以来,围绕STL成长起来的开发者社区一直在/std:c++latest下的VisualStudio发行版中实现DR,就像它们是C++23功能一样。我们的计划是,在所有DR完成后,在/std:c++20下提供最终实现版本,然后将该工作反向移植到VisualStudio为尚未迁移的客户完成C++20平滑迁移到VisualStudio。幸运的是,我们实现了VisualStudio17.2Preview2的第一个”小目标”。

考虑到我们必须将来自开发分支的一百个提交合并到16.11发布分支,并在不回归稳定发布版本的情况下让一切正常工作,向后移植工作非常顺利。我们想办法及时完成了工作,以在17.2中完成C++20支持的同时,也发布16.11版本对C++20支持。

总结

不管你接受不接受,C++20还是来了,VS还是来了。订立一个大目标时,一定需要加个时效性。对于我来说,这个时效性等于从现在的时刻开始,一直到离开这个世界的时间段。

最后

MicrosoftVisualC++团队的博客是我非常喜欢的博客之一,里面有很多关于VisualC++的知识和最新开发进展。大浪淘沙,如果你对VisualC++这门古老的技术还是那么感兴趣,则可以经常去他们那(或者我这)逛逛。本文来自:《MSVC’sSTLCompletes/std:c++20》




转载请注明:http://www.aierlanlan.com/tzrz/6075.html