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

相关文章

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

C++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

使用Go实现文件复制的完整流程

《使用Go实现文件复制的完整流程》本案例将实现一个实用的文件操作工具:将一个文件的内容完整复制到另一个文件中,这是文件处理中的常见任务,比如配置文件备份、日志迁移、用户上传文件转存等,文中通过代码示例... 目录案例说明涉及China编程知识点示例代码代码解析示例运行练习扩展小结案例说明我们将通过标准库 os

Java堆转储文件之1.6G大文件处理完整指南

《Java堆转储文件之1.6G大文件处理完整指南》堆转储文件是优化、分析内存消耗的重要工具,:本文主要介绍Java堆转储文件之1.6G大文件处理的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言文件为什么这么大?如何处理这个文件?分析文件内容(推荐)删除文件(如果不需要)查看错误来源如何避

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域