- 课程目录
- 课程介绍
-
在线阅读:开篇词|为什么掌握现代C++新特性如此重要?
C++20及后续演进标准作为继C++11之后的又一次重大变革,给我们带来了面对以往难以解决问题的新思想、新工具。
-
01|Modules(上):C++模块化问题的前世今生
为了隐藏代码实现细节,我们往往要使用哪些编程范式或技巧?
-
02|Modules(中):解决编译性能和符号隔离的银弹
这一讲,我们看看传统头文件编译范式,在编译性能和符号隔离之间二选一的难题如何解决。
-
03|Modules(下):实战写个多模块图像处理服务
相信你在动手实战后,就能进一步理解应该如何使用C++ Modules和namespace来解决现实问题。
-
04|Concepts背景:C++泛型编程之殇
那泛型编程到底是什么?C++如何支持泛型能力,又存在哪些问题?这是我们今天要解决的问题。
-
05|Concepts:解决模板接口的类型与约束定义难题
Concepts能为我们的编程体验带来多大的革新?能解决多少模板元编程的历史遗留问题呢?
-
06|Concepts实战:写个向量计算模板库
今天我们就来实战体验一下,使用C++模板,编写一个简单的向量计算模板库。
-
07|Coroutines背景:异步I/O的复杂性
这一讲,我们会通过传统C++解决方案实现异步I/O编程,亲身体验一下这种实现的复杂度。
-
08|Coroutines:“零”开销降低异步编程复杂度
从C++20开始,提供了一个全新的解决异步问题(特别是异步I/O)的方案——协程。
-
09|Coroutines实战(一):异步文件操作库
让我们以一个异步文件系统操作库为例,学习如何编写满足C++协程约定的程序。
-
10|Coroutines实战(二):异步文件操作库
一旦实现了协程框架,就能降低调用者的异步编程门槛,这正是协程的价值所在。
-
期中周|扩展现有协程框架,实现高级任务调度
我特意安排了这次期中周。从 2 月 13 日开始到 2 月 19 日结束,暂停更新内容,你可以利用这周挑战期中测试题,海口可以回顾之前所学,查漏补缺。
-
期中周|期中测试题,你做对了么?
期中周我给你出了一道实战题目,这一讲,我会把参考代码和解题思路公布出来。
-
11|Ranges(一):数据序列处理的新工具
Ranges让C++逐渐成为了处理大规模复杂数据的新贵,相信在学完Ranges后,你会爱上这种便利的数据处理方式!
-
12|Ranges(二):用“视图”破除函数式编程之困
视图是Ranges中提出的又一个核心概念,是Ranges真正解放函数式编程的重要驱动力。
-
13|Ranges实战:数据序列函数式编程
今天我为你准备了一个实战案例,设计一个简单的统计分析程序,用来分析三维视图中的对象。
-
14|Formatting:千呼万唤始出来的新format标准
如何通过重载formatter中的format函数,实现自定义输出格式化文本呢?
-
15|Formatting实战:如何构建一个数据流处理实例?
在这一讲中,我们会基于新标准实现一个日志库。你可以重点关注特化formatter类型的方法,实现高度灵活的标准化定制。
-
16|Bit library(一):如何利用新bit操作库释放编程生产力?
C++20作为一个里程碑式的重要标准,终于开始解决基本的位操作问题。
-
17|Bit library(二):如何利用新bit操作库释放编程生产力?
这一讲我会通过一个较为完整的工程代码,带你体会如何充分利用全新的位操作库,实现强大的序列化和反序列化功能以及位运算。
-
18|其他重要标准库特性:还有哪些库变更值得关注?
今天我们关注几个比较重要的标准库变更注,包括jthread、source location、Sync stream和u8string。
-
19|其他重要标准库特性实战:利用日历应用熟悉新特性
今天,我们一起进行编程实战,实现一个使用新标准实现的日历程序。
-
20|漫游C++23:更好的C++20
今天我会带从语言特性和标准库特性两个方面,了解C++23中比较重要的一些变化。
-
21|重大变更(一):关于C++26的十大猜想
这一讲中,我们把视角转向C++26及其后续演进。
-
22|重大变更(二):关于C++26的十大猜想
让我们继续漫游之旅,畅想未来C++标准演进可能迎来的另外六个变化。
-
23|未来展望:透过未来标准演进看C++设计哲学
这一讲,我们会深入探究C++的语言设计哲学、核心范式,洞悉C++语言的未来。
-
结束语|这只长颈鹿在我家后院生活得不错
就像我曾经心中的那只长颈鹿一样,我每天都会花一点时间专注在一件“持续”的事情上。而现在,经过这几年的专心致志,那个位置,已经有三只长颈鹿了。
-
期末测试|来赴一场满分之约!
来赴一场满分之约!
-
加餐|软件工程师在AIGC浪潮下的生存指南
这次加餐,我想通过我对AIGC技术的理解以及一些案例,简单分析一下软件工程师的生存指南,和你聊聊这件事是否值得我们“焦虑”。
课程介绍
你将获得 三大核心语言特性 & 重要库变更详解 五大实例快速提升编程能力 更通用的 C++ 开发之道 理解 C++ 未来的语言演进方向 讲师介绍 课程介绍 C++20 自 2020 年底推出已经两年了,作为 C++ 语言继...你将获得
- 三大核心语言特性 & 重要库变更详解
- 五大实例快速提升编程能力
- 更通用的 C++ 开发之道
- 理解 C++ 未来的语言演进方向
讲师介绍
课程介绍
C++20 自 2020 年底推出已经两年了,作为 C++ 语言继 C++11 后的又一次重大变革,这一版本引入的核心语言特性变更和重要库变更,将对 C++ 开发者的日常开发带来巨大影响,从编程思想的角度看,你甚至可以当成一门新的语言来学习。
举几个例子:
- 对于模块定义、符号隔离与编译性能间的矛盾,有了 Modules 来解决。
- C++ 泛型编程中缺乏良好接口定义的问题,有了Concepts 来应对。
- 传统 C++ 异步业务代码需要考虑大量细节,引入了 Coroutines 降低复杂度。
- 原本 C++ 函数式编程时代码复杂冗长,现在可以通过 Ranges 解决。
如果你是有经验的 C++ 开发者,亟需转换思路,用新工具,解决工作中之前无法解决的老问题;对于新手,C++ 变得更加友好,即便不做为主语言,也可以吸取其精华,体会先进的编程思想。
卢誉声老师将结合自己工作中丰富的 C++ 实践经验和面试经验,系统讲解 C++20 及后续演进标准中的新特性和重要库变更,结合实践案例带你提升 C++ 实力,真正成长为 C++ 高手。
课程设计
课程主题分成三个章节。

第一章:核心语言重要变更
系统学习 C++20 带来的核心语言特性变更和最佳实践。不但会讲清 Modules、Concepts、Coroutines 新特性的背景、概念和原理,还会对比这些高级抽象与传统编码方案的不同。最后,还会在实际工程项目代码中,带你体会这些核心变更的强大之处。
第二章:重要库变更
通过网络数据流的处理实例学习 Ranges、Formating 和 Bit manipulation,用命令行的日历应用实例学习其他的几个重要标准库变更。你会在实战中快速掌握使用现代 C++ 库解决问题的便捷性和编程思路,加深对 C++ 设计哲学的理解。
第三章:现代 C++ 标准演进
讨论 C++20 后续演进标准,即 C++23 和 C++26 会带来的新特性,让你洞悉未来,理解 C++ 未来的语言演进方向,并学会如何使用这些新特性解决问题。
课程配套代码从这里获取(代码进度随课程进度更新)。
课程目录

适合人群
本专栏非 C++ 零基础课程。适合有 C++ 使用经验或者有意愿深入了解 C++20 的工程师。