现代C++20实战高手课

现代C++20实战高手课 / 进阶编程能力,成为C++高手

卢誉声 Autodesk 首席工程师
  • 课程目录
  • 课程介绍
  • 在线阅读:开篇词|为什么掌握现代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技术的理解以及一些案例,简单分析一下软件工程师的生存指南,和你聊聊这件事是否值得我们“焦虑”。

29讲

你将获得

  • 三大核心语言特性 & 重要库变更详解
  • 五大实例快速提升编程能力
  • 更通用的 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 的工程师。


订阅须知

随机推荐

DECLEAN 鹿洁钢丝抹布双层不沾油分析怎么样?评测不看后悔!

飞利浦S15智能手机赠品套装性价比如何?使用后分享点评?

苏菲睡裤L码2条适用臀围85-105cm购买前需要注意什么?最新评测揭...

长杰腰间盘突出型推荐哪款?使用体验分享?

吟美 CINBI叶绿素氨基酸洗面奶 100g「实惠装」2瓶分析怎么样?小...

洪湖MFZ/ABC4使用怎么样?亲身评测体验诉说?