首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐
2025年5月29日 星期四 9:27pm

C++ 20 进入倒计时,有哪些值得期待的新特性?

  • 24-03-05 02:40
  • 3391
  • 7732
blog.csdn.net

640?wx_fmt=gif


640?wx_fmt=jpeg

作者 | 局长

本文经授权转载自开源中国(ID:oschina2013)

640?wx_fmt=png

刚刚结束的 C++ 标准委员会2019春季会议在夏威夷科纳举办,委员会在这次会议中确定了下一个国际标准 C++20 的全部特性,这标志着 C++20 的特性设计工作已完成。

按照 C++20 的发布计划,这次会议正是为了冻结 C++20 的特性而举办,进入特性冻结阶段(Feature freeze)意味着所有的功能特性将被冻结,并且不会再加入更多的新特性。

接下来我们看看上周会议确定添加至 C++20 草案的新特性:

  • 模块化(Modules)

  • 协程(Coroutines)

  • static, thread_local, 和 lambda capture 的结构化绑定

  • std::polymorphic_allocator<>

  • std::midpoint 和 std::lerp

  • std::execution::unseq 执行策略

  • std::ssize() 作为自由函数(free function)会返回符号大小(signed size)

  • std::span 的可用性增强

  • lookup 中新增预计算哈希值的功能(Precalculated hash values)

协程的加入应该是最大的惊喜了,值得期待!官方还表示,C++20 应该会是一个像 C++11 那样的大版本。

以下的特性已在本次会议或之前的会议上通过了批准,但尚未添加到 C++20 中,因为目前规范仍在编写中。它们有望在2019年7月的科隆会议上被加入,不过由于时间限制,可能无法完成所有工作。

  • Expansion statements

  • The C++20 synchronization library

  • std::format

  • constexpr std::vector

  • Allow constexpr allocation, but disallow allocations that are not deleted at compile time

  • constexpr std::type_info::operator==

  • New conceptification of iterators

  • Monadic operations for std::optional

  • std::source_location

  • std::flatmap

  • std::flatset

  • std::any_invocable

  • std::ostream_joiner

  • Stack trace library

  • std::byteswap

  • constinit

  • Deprecating some uses of volatile

  • Implicit creation of objects for low-level object manipulation

  • using enum

下面的这些特性,早已在之前的会议上通过了批准:

  • Concepts

  • Contracts

  • Ranges

  • operator<=>

  • A lot more constexpr features: consteval functions, std::is_constant_evaluated, constexpr union, constexpr try and catch, constexpr dynamic_cast and typeid

  • std::span

  • Synchronized output

  • std::atomic_ref

按照计划的发布进度,C++20 预计将于明年夏季推出。

640?wx_fmt=png

C++20 发布计划

最后,看看 C++ 主要特性的开发进度。

自上次会议以来的变更:

640?wx_fmt=png

名词解释

  • IS = 国际标准。如 C++ 编程语言:C++11, C++14, C++17 等

  • TS = 技术规范。在该阶段中,特性分支处于可使用状态,但尚未被所有厂商实现。如 Coroutines TS v1, Modules TS v1 等。

  • CD = 委员会草案,即 IS/TS 的草案,用于给标准机构进行审查和反馈("beta testing")。

据透露,工具研究小组 SG15 决定创建一个 C++ 生态系统技术报告,该报告将描述新模块化 C++ 中工具(构建系统等)的最佳实践和最新技术。

详细请内容请复制以下链接到浏览器打开查看:https://www.reddit.com/r/cpp/comments/au0c4x/201902_kona_iso_c_committee_trip_report_c20/

 热 文 推 荐 

☞ 零基础程序员如何花 8 个月时间获得特斯拉实习机会?

☞ 为什么程序员下班后只关显示器从不关电脑?

☞ 谁能主宰服务器市场?Linux 之父和 Redis 之父有分歧了

☞ 那些简历造假拿 Offer 的程序员,后来都怎么样了?

☞ 被V神点赞, 我是如何用五子棋打败以太坊排名最高的应用的? |人物志

☞ 50个最有价值的数据可视化图表(推荐收藏)

一键免费自动AI抠图,效果连PS大哥也点赞!

史上最难的一道Java面试题

 
 

print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!\n");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"

640?wx_fmt=gif点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

640?wx_fmt=png 喜欢就点击“好看”吧!
CSDN
微信公众号
成就一亿技术人
注:本文转载自blog.csdn.net的CSDN资讯的文章"https://blog.csdn.net/csdnnews/article/details/87927517"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top