VS2022官宣C++ 20标准库完整版本释出

2024-01-08 13:40

本文主要是介绍VS2022官宣C++ 20标准库完整版本释出,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

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

缺陷报告(Defect Reports)

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

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

总结

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

最后

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

 

这篇关于VS2022官宣C++ 20标准库完整版本释出的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/583638

相关文章

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

c++中std::placeholders的使用方法

《c++中std::placeholders的使用方法》std::placeholders是C++标准库中的一个工具,用于在函数对象绑定时创建占位符,本文就来详细的介绍一下,具有一定的参考价值,感兴... 目录1. 基本概念2. 使用场景3. 示例示例 1:部分参数绑定示例 2:参数重排序4. 注意事项5.

使用C++将处理后的信号保存为PNG和TIFF格式

《使用C++将处理后的信号保存为PNG和TIFF格式》在信号处理领域,我们常常需要将处理结果以图像的形式保存下来,方便后续分析和展示,C++提供了多种库来处理图像数据,本文将介绍如何使用stb_ima... 目录1. PNG格式保存使用stb_imagephp_write库1.1 安装和包含库1.2 代码解

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

使用C++实现单链表的操作与实践

《使用C++实现单链表的操作与实践》在程序设计中,链表是一种常见的数据结构,特别是在动态数据管理、频繁插入和删除元素的场景中,链表相比于数组,具有更高的灵活性和高效性,尤其是在需要频繁修改数据结构的应... 目录一、单链表的基本概念二、单链表类的设计1. 节点的定义2. 链表的类定义三、单链表的操作实现四、

SQL Server数据库迁移到MySQL的完整指南

《SQLServer数据库迁移到MySQL的完整指南》在企业应用开发中,数据库迁移是一个常见的需求,随着业务的发展,企业可能会从SQLServer转向MySQL,原因可能是成本、性能、跨平台兼容性等... 目录一、迁移前的准备工作1.1 确定迁移范围1.2 评估兼容性1.3 备份数据二、迁移工具的选择2.1