这是一份核心 C++ 语言构造的参考手册。
注释
ASCII 码表
名字与标识符
类型 - 基础类型
对象 - 作用域 - 生存期
定义与 ODR
名字查找
有限定 - 无限定
“如同”规则
未定义行为
内存模型与数据竞争
翻译阶段
main() 函数
模块(C++20)
#if - #ifdef - #else - #endif
#define - # - ## - #include
#error - #pragma - #line
值类别
求值顺序与定序
常量表达式
运算符
赋值 - 算术
自增与自减
逻辑 - 比较
成员访问与间接
调用、逗号、三元
sizeof - alignof(C++11)
new - delete - typeid
运算符重载
默认比较(C++20)
运算符优先级
转换
隐式 - 显式 - 用户定义
static_cast - dynamic_cast
const_cast - reinterpret_cast
字面量
布尔 - 整数 - 浮点
字符 - 字符串
nullptr(C++11)
用户定义(C++11)
命名空间声明
命名空间别名
左值与右值引用
指针 - 数组
结构化绑定(C++17)
枚举与枚举项
存储期与连接
语言连接
inline 说明符
内联汇编
const/volatile - constexpr(C++11)
decltype(C++11) - auto(C++11)
alignas(C++11)
typedef - 类型别名(C++11)
详述类型说明符
属性(C++11)
static_assert(C++11)
默认初始化
值初始化(C++03)
复制初始化
直接初始化
聚合初始化
列表初始化(C++11)
引用初始化
静态非局部初始化
零 - 常量
动态非局部初始化
有序 - 无序
复制消除
函数声明
默认实参
变长实参
lambda 表达式(C++11)
实参依赖查找
重载决议
运算符重载
重载集的地址
协程(C++20)
if - switch
for - 范围 for(C++11)
while - do-while
continue - break - goto - return
synchronized 与 atomic(TM TS)
类类型 - 联合类型
注入类名
数据成员 - 成员函数
静态成员 - 嵌套类
派生类 - using 声明
空基类优化
虚函数 - 抽象类
override(C++11) - final(C++11)
成员访问 - friend
位域 - this 指针
构造函数与成员初始化器列表
默认构造函数 - 析构函数
复制构造函数 - 复制赋值
移动构造函数(C++11) - 移动赋值(C++11)
转换构造函数 - explicit 说明符
模板形参与实参
类模板 - 函数模板
类成员模板
变量模板(C++14)
模板实参推导
显式特化
类模板实参推导(C++17)
部分特化
形参包(C++11) - sizeof...(C++11)
折叠表达式(C++17)
待决名 - SFINAE
制约与概念 (C++20)
throw 表达式
try-catch 块
函数 try 块
noexcept 说明符(C++11)
noexcept 运算符(C++11)
动态异常说明(C++17 前)
杂项
惯用手法