一、深入Modern C++(C++11/14/17/20)系列 | |
课程名称 | 课程时长 |
1. 深入应用C++11 | 1天 |
2. C++14新特性解析开发实践 | 2天 |
3. C++17新特性解析和开发实践 | 2天 |
4. Modern C++设计模式 | 1天 |
5. Modern C++元编程 | 2天 |
6. C++23之编译期反射 | 1天 |
7.C++20之coroutine | 1天 |
8. C++20之concepts | 1天 |
9. C++20之Modules | 1天 |
10. C++演进趋势 | 1天 |
二、专题系列 | |
1. C++多态极其未来 | 1天 |
2.STL算法(函数式编程) | 1天 |
3. C++性能优化 | 1天 |
4. C++内存管理 | 1天 |
5.C++异常和错误处理 | 1天 |
6. C++开源项目 | 1天 |
1. 深入应用C++11
会深入讲解C++11中在日常开发中常用的特性,对一些特别重要的特性会做深入透彻的讲解,典型的如右值引用、移动语义和智能指针等。
还会结合一些实际的案例来讲解这些C++11的最佳实践,让大家对C++11的特性的使用可以做到融会贯通。
1. C++11概览
2. C++11让代码更简洁
3. C++11让代码更灵活
4. C++11让代码更高效
5. C++11让代码更安全
2. C++14新特性解析开发实践
C++14增加的新特性比较少,一直被认为是一个小版本,然而它是一个很重要的版本,它给C++元编程思想带来了较大的改变,并不是我们认为的仅仅是一个小版本。
本专题将深入探讨C++14中那些很重要的特性,深入探索这些特性的应用场景和可能的潜力。
1. C++14 constexpr
2. C++14泛型lambda
3. C++14变量模板
4. C++14真的是一个小版本吗?
5. 泛型lambda的威力
6. C++14变量模板带来的改变
3. C++17新特性解析和开发实践
C++17增加了非常多的新特性,我们将重点聚焦C++17常用的的特性,深入探讨这些特性的应用场景。
1. fold expression用来做什么?
2. constexpr if是c++17最重要的特性之一
3. constexpr lambda
4. 深入std::void_t
5. 非常实用的std::string_view和inline variable
6. 很酷的structure binding
7. std::invoke和std::apply化繁为简
8. 非常重要的deduction guide
9. 那些来自boost的库
10. 并行算法
4. Modern C++设计模式
简要介绍OOP,OOD的关系,再讲解UML的概念、特点和用途;
重点讲解一些典型的设计模式的思想、特点和应用场景,还有具体实现,以及如何用c++实现这些模式。
从思想原理到具体实现做一个深入的探索。
1. .OOP, OOD, UML
2. 从最简单的nullobject模式开始
3. 单例
i. 忘掉volatile和双检测锁
ii. 两行C++11代码实现单例模式
iii. 通过C++11新特性对单例模式做一个泛化
iv. 单例模式的变体--多例
v. 实际应用
4.工厂
i. 非常常见的工厂方法
ii. 从工厂方法到工厂模式
iii. 从工厂到抽象工厂
iv. 用modern c++来终结工厂模式的实现
v. 再谈工厂方法
vi. 实际应用
5.访问者模式
i. 经典的双分派visitor的实现
ii. 经典实现存在的问题
iii. 用modern c++改进visitor模式的实现
iv. 无环的visitor模式
v. visitor模式在实际开发中的应用--variant
vi. 再谈visitor模式
vii. 实际应用
6.策略模式
i. 动态多态
ii. policy-base
iii. pimpl
iv. 实现静态多态的几种思路
v. 实际应用
7.对象池模式
i. 对象复用
ii. modern c++实现对象池模式
iii. 一个实际的数据库连接池
8.设计模式再思考
i. 避免过度设计
ii. 忘掉设计模式
iii. 保持重构
5. Modern C++元编程
主要讲解Modern C++元编程原理和应用,通过源码分析,丰富的示例,让你深入理解元编程背后蕴含的思想和常见的方法、技巧,同时还会讲解元编程是如何应用于实际开发的。
本专题是C++高级开发工程师进阶现代C++元编程很棒的指导。
1. modern c++元编程思想
2. 编译期检查
3. 编译期探测
4. 编译期计算
5. 编译期反射
6. 融合编译期和运行期
7. 消除重复(宏)
8. 接口泛化与统一
9. 接口易用性和灵活性
6. C++23之编译期反射
C++编译期反射是一个非常有用的特性,应用于很多场景,比如序列化和ORM等场景,但是目前C++缺少编译期反射特性。
本专题将深入浅出编译期反射思想、原理和实现以及典型应用。
1. 什么是编译期反射
2. 编译期反射的实现
3. 编译期反射性能
4. 编译期反射的应用
5. 编译期反射的未来
7. C++20之coroutine
协程是一个呼声比较高的C++20新特性,为什么它受到特别关注,会讲解它的实现原理,特点和应用,让大家能深入浅出理解和应用协程。
1. 协程是什么
2. 协程解决了什么问题
3. 如何在实际开发中使用协程
4. 使用协程需要注意的问题
5. 对协程的再思考
8. C++20之concepts
concepts是C++之父一直推崇的一个特性,早在90年代他就开始写关于concepts的提案,他认为这是20中最重要的特性之一,它也是改变
C++编程方式的一个特新。
1. 为什么需要concepts?
2. concepts的特点
3. 标准库中的concepts
4. 如何在实际开发中使用concepts
5. concetps的未来
9. C++20之Modules
modules被认为可以大幅提高C++编译速度,让我们可以像java那样import一些模块。我们会深入到modules的细节,看看它是如何提高编译速度的
1. 为什么需要module
2. modules的细节
3. 如何使用modules
4. modules存在的问题
10. C++演进趋势
C++标准委员会自从2011年开始保持了每三年更新一个标准的节奏,新的特新不断加入,但是回顾C++的历史和现在
标准委员会的委员们在审阅的提案,我们可以发现C++的演进脉络和趋势。
1. C++标准的历史
2. 每个标准中的重要特性
3. C++设计哲学和新特性
4. C++演进趋势
二、专题系列
1. . C++多态极其未来
基于虚分派的动态多态已经有三十多年的历史了,后来C++又支持了静态多态,但静态多态并不能完全替代动态多态,最近C++社区的一个热点是如何实现非虚分派的动态多态,消除虚函数的开销。
1. 动态多态的原理和实现
2. 静态多态的原理和实现
3. 什么时候用动态多态和静态多态
4. 动态多态的未来
2. STL算法(函数式编程
实际生产环境中的代码背后隐藏着各种不同的思想,这些思想从编程的角度归为OOP和函数式编程等思想。
STL算法很容易实现函数式编程,我们将深入函数式编程,掌握STL算法是如何在函数式编程中应用的。
1. lambda
2. 高阶函数
3. pipeline
4. 惰性求值
5. curry
6. monad
7. 偏函数应用
8. 函数式编程在实际中的应用
3. C++性能优化
TODO
4. C++内存管理
TODO
5.C++异常和错误处理
TODO
6. C++开源项目
TODO