20|漫游C++23:更好的C++20
卢誉声
你好,我是卢誉声。
到现在为止,我们应该已经发现,C++20 这个版本的规模和 C++11 等同,甚至更加庞大。一方面,它变得更加现代、健壮和安全。另一方面,自然也存在很多不足之处。
因此,就像 C++14/17 改进、修复 C++11 那样,C++23 必然会进一步改进 C++20 中“遗留”的问题。令人高兴的是,C++23 标准已经于 22 年特性冻结。除了作为 C++20 的补丁,它还引入了大量新特性(主要是标准库部分),成为了一个至少中等规模的版本更新。
既然 C++23 的特性已经冻结,年底发布的正式标准最多只是标准文本的细节差异,现在正是一个了解 C++23 主要变更的好时机。
给你一点提示,现阶段各个编译器尚未针对 C++23 提供完善的支持。因此,对于这一讲涉及的代码,主要是讲解性质,暂时无法保证能够编译执行。
接下来,就让我们从语言特性变更、标准库变更两个角度,开始漫游 C++23 吧。
语言特性变更
C++23 的语言特性变更真的不多,不过即使如此,也有一些非常亮眼的特性变更,比如我们即将了解的几个新特性。
显式 this 参数
要明白这个语言特性变更,得先弄清楚什么是显式 this 参数。
让我们来看一下这段代码。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
C++23标准的发布将带来许多令人振奋的新特性和标准库变更。其中,引人注目的语言特性变更包括显式this参数和多元operator[],为编码习惯带来较大变化。此外,C++23引入了名为std的标准Module,使得使用标准库更加方便。另一个重要变化是引入了expected类型,并通过Monadic interfaces实现新的异常处理风格,这是仿照Rust等语言的做法。此外,对Ranges的补充增加了大量支持,包括适配器和视图管道的使用,以及一个实用的转换函数to,允许将视图转换成任意类型的标准容器。C++23还引入了mdspan作为多维数组视图,解决了多维数组支持不足的问题。另外,新增的print和println函数使得文本格式化输出更加便捷,而堆栈跟踪库则弥补了异常处理能力的不足,使得程序开发更加便利。总之,C++23标准的变化将为开发者带来更多便利和新的编程范式,让我们拭目以待,期待C++23的正式发布。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《现代 C++20 实战高手课》,新⼈⾸单¥59
《现代 C++20 实战高手课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论