◐ Shell
clean mode source ↗

C++ 语言 - cppreference.com

基本概念

注释
ASCII 码表
标点符号
名字与标识符
类型基础类型
对象作用域生存期
定义与 ODR
名字查找
    有限定无限定实参依赖
“如同”规则
未定义行为
内存多线程 (C++11)
字符集与编码
翻译阶段
main 函数
模块 (C++20)
契约 (C++26)
拼接说明符 (C++26)

关键词

预处理器

#if - #ifdef - #ifndef - #elif
#elifdef - #elifndef (C++23)
#define - # - ##
#include - #pragma
#line - #error
#warning (C++23)

表达式

值类别
求值顺序
常量表达式
运算符
    赋值算术
    自增与自减
    逻辑比较
    成员访问
    调用、逗号、三元
    sizeofalignof (C++11)
    newdeletetypeid
    反射 (C++26)
    代用表示
默认比较 (C++20)
运算符优先级
转换
    隐式显式
    用户定义
    一般算术转换
    static_castdynamic_cast
    const_cast - reinterpret_cast
字面量转义序列
    布尔整数浮点数
    字符字符串
    nullptr (C++11)
    用户定义 (C++11)

声明

有冲突的声明
存储期与链接
翻译单元局部 (C++20)
语言链接
命名空间声明
命名空间别名
引用指针数组
结构化绑定 (C++17)
枚举与枚举项
inline 说明符
内联汇编
const/volatile
constexpr (C++11)
consteval (C++20)
constinit (C++20)
decltype (C++11)
auto (C++11)
typedef类型别名 (C++11)
详述类型说明符
属性 (C++11)
alignas (C++11)
static_assert (C++11)

初始化

默认初始化
值初始化 (C++03)
复制初始化
直接初始化
聚合初始化
列表初始化 (C++11)
引用初始化
静态非局部初始化
    常量
动态非局部初始化
    有序无序
复制消除

函数

函数声明
默认实参
变长实参
lambda 表达式 (C++11)
重载决议
运算符重载
重载集的地址
协程 (C++20)
替换函数

语句

ifswitch
whiledo-while
for范围 for (C++11)
template for (C++26)
continuebreak
gotoreturn
contract_assert (C++26)
synchronized/atomic (TM TS)

类类型联合体类型
注入类名
数据成员位域
成员函数this 指针
静态成员嵌套类
派生类using 声明
空基类优化
虚函数抽象类
override (C++11)final (C++11)
成员访问friend
构造函数与成员初始化器列表
默认构造函数析构函数
复制构造函数复制赋值
移动构造函数 (C++11)
移动赋值 (C++11)
转换构造函数
explicit 说明符

模板

模板形参与实参
类模板函数模板
变量模板 (C++14)
类成员模板
模板实参推导
    函数类 (CTAD) (C++17)
显式特化部分特化
(C++11)
sizeof... (C++11)
折叠表达式 (C++17)
包索引 (C++26)
待决名SFINAE
约束与概念 (C++20)
requires 表达式 (C++20)

异常

try
抛出异常
处理异常
异常说明
    noexcept 说明 (C++11)
    动态异常说明 (C++17 前*)
noexcept 运算符 (C++11)

杂项

C++ 的历史
扩充命名空间 std
字母缩写AFO, CPO, IFNDR, NDR,
NTBS, NTTP, RAO, SOCCC, TMP, TU

惯用手法

奇特重现模板模式 (CRTP)
指向实现的指针 (PIMPL)
资源获取即初始化 (RAII)
三/五/零法则
零开销原则