
Markdown
# 现代 C++ 知识概要
## 语言基础
### 常规语法
#### 语法基础与流程控制
#### 数据类型(※函数指针※)
#### 面向对象(※虚表相关※)
#### 标准库容算法、容器与迭代器
#### 运算符重载与lambda
#### CV限定符、文件操作···
### 基础概念
#### 宏的原理
#### 指针与引用
#### 栈区与堆区
## RAII
### 生命周期
#### 生存期与存储期
#### 值类别与引用
#### 移动语义
#### 完美转发
#### 智能指针
### 异常处理
#### try-catch 基础
#### 异常规范
#### noexcept 保证
## 编译相关
### 常规概念
#### 编译过程与优化
#### 头文件原理
#### inline、static 作用
#### 内部链接与外部链接
#### 静态库与动态库
#### 编译器相关
#### 模块的编译(C++20)
### 编译控制
#### CMake
#### vcpkg 包管理
## 模板编程
### 泛型编程
#### 静态类型推断(auto、decltype)
#### 模板展开原理
#### 特化、偏特化
#### 包展开与折叠表达式
#### SFINAE 规则与类型约束
#### 标准库常用模板
#### 约束与概念(C++20)
### 编译期操作
#### const 与 constexpr
#### 编译期分支与函数
## 并发编程
### 并发编程基础
#### 线程相关概念
#### std::thread 的应用
#### std::async 与 std::future
#### 协程(C++20)
### 同步与互斥
#### 互斥锁与读写锁
#### 条件变量
#### 原子变量
#### 信号量、屏障(C++20)
## 杂项
### 语言特性
#### ODR(单一定义规则)
#### 名称查找规则(※名称依赖查找※)
#### 显式类型转换与自动转换规则
#### 函数重载决议
#### 结构化绑定
#### 零初始化、聚合初始化
#### 初始化列表(initializer_list)
#### 用户定义字面量
### 标准库
#### 内存分配器
#### 时间(chrono)
#### 文件系统(filesystem)
#### 范围与视图(C++20)
### 实用技巧
#### 静态注册(常用于单元测试或反射库)
#### 奇异递归模板法
参考资料:cppreference.com