Skip to content

C++ 特性参考卡 ​

覆盖 C++98 至 C++23 全部主要特性的结构化速查索引。已有参考卡的特性可直接点击跳转,查看核心 API 签名、最小可编译示例、嵌入式适用性和编译器支持信息。尚未创建参考卡的特性以纯文本列出,后续批次逐步补充。

遇到某个特性想快速查语法?来这里。想系统学习?去看对应卷的教程文章。

快速导航 ​

按标准版本:C++98/03 | C++11 | C++14 | C++17 | C++20 | C++23 | C++26

按功能类别:内存管理 | 容器与视图 | 并发 | 核心语言特性 | 模板与元编程

图例

  • 适用性:高 = 嵌入式强烈推荐,中 = 按场景选用,低 = 通常不需要
  • 蓝色链接 = 已有参考卡,纯文本 = 参考卡待补充
  • 头文件栏标注"语言特性"表示无需 #include 的核心语言机制

按标准版本 ​

C++98/03 ​

C++98(ISO/IEC 14882:1998)是第一个 ISO 标准化版本,奠定了 STL 容器/算法/迭代器三大支柱、异常处理、命名空间和模板等核心机制——这些特性至今仍是 C++ 编程的日常基础设施。C++03 是缺陷修复版本,仅澄清了值初始化语义等细节,无重大新特性。

特性头文件简述适用性
STL 容器 (vector, list, deque, map, set...)<vector> 等顺序/关联/无序容器族高
STL 算法 (sort, find, transform...)<algorithm>排序/查找/变换等通用算法高
STL 迭代器<iterator>统一遍历接口高
std::string<string>可变长度字符串高
iostream<iostream>类型安全的 I/O 流中
RAII (构造/析构/拷贝语义)语言特性资源获取即初始化高
异常处理 (try/catch/throw)语言特性结构化错误处理中
命名空间 (namespace)语言特性防止名称冲突高
类模板 / 函数模板语言特性泛型编程基础高
运算符重载语言特性自定义类型运算行为中
函数对象 (仿函数)<functional>可调用对象与适配器中
RTTI (dynamic_cast, typeid)<typeinfo>运行时类型识别低
std::complex / std::valarray<complex>数值计算支持低

C++11 ​

C++11 是现代 C++ 的起点,带来了 lambda、auto、移动语义、智能指针、并发支持库等革命性特性。从这一版开始,C++ 从"带类的 C"进化为真正的高效抽象语言——这是学习 Modern C++ 的第一站。

特性头文件简述适用性
std::unique_ptr<memory>独占所有权智能指针高
std::shared_ptr<memory>共享所有权智能指针中
std::weak_ptr<memory>打破 shared_ptr 循环引用中
lambda 表达式语言特性匿名函数对象高
auto语言特性自动类型推导高
decltype语言特性表达式类型查询高
constexpr语言特性编译期常量与函数高
范围 for (range-for)语言特性容器遍历语法糖高
移动语义 (右值引用)语言特性资源转移而非拷贝高
std::move / std::forward<utility>移动与完美转发工具高
nullptr语言特性类型安全的空指针常量高
enum class语言特性作用域强类型枚举高
override / final语言特性虚函数显式标注高
static_assert语言特性编译期断言高
可变参数模板语言特性任意数量模板参数高
std::initializer_list<initializer_list>统一初始化列表高
std::array<array>编译期固定大小数组高
std::tuple<tuple>异构固定大小容器中
std::unordered_map / set<unordered_map>哈希表容器中
std::function<functional>多态函数包装器中
用户自定义字面量语言特性自定义字面量后缀中
委托/继承构造语言特性构造函数复用中
alignas / alignof语言特性对齐控制与查询中
std::thread<thread>平台无关线程高
std::mutex / lock_guard<mutex>互斥锁与 RAII 锁高
std::atomic<atomic>无锁原子操作高
std::condition_variable<condition_variable>条件变量同步中
std::future / async<future>异步任务与结果获取中
std::chrono<chrono>时间库高

C++14 ​

C++14 是对 C++11 的完善与打磨——放宽 constexpr 限制、引入泛型 lambda 和 std::make_unique。改动不大但实用性强,几乎所有特性在嵌入式开发中都能直接使用。

特性头文件简述适用性
std::make_unique<memory>异常安全的 unique_ptr 创建高
泛型 lambda语言特性lambda 参数使用 auto高
返回类型推导 (auto return)语言特性函数返回值 auto 推导中
constexpr 扩展语言特性放宽 constexpr 限制(循环/局部变量)高
decltype(auto)语言特性完美转发返回类型推导中
std::exchange<utility>替换并返回旧值中
std::integer_sequence<utility>编译期整数序列中
二进制字面量 (0b)语言特性0b 前缀二进制整数中
数位分隔符 (')语言特性撇号分隔数字提升可读性低
std::shared_timed_mutex<shared_mutex>定时共享互斥锁低

C++17 ​

C++17 引入了结构化绑定、if constexpr、string_view、optional、variant 等高频特性,显著提升了日常编码的表达力。CTAD 和保证拷贝消除了大量样板代码,std::filesystem 补齐了文件操作的短板。

特性头文件简述适用性
std::optional<optional>可选值包装高
std::variant<variant>类型安全的联合体中
std::string_view<string_view>零拷贝字符串视图高
std::any<any>类型安全的任意值容器低
std::filesystem<filesystem>文件系统操作中
结构化绑定语言特性多返回值解构高
if constexpr语言特性编译期条件分支高
折叠表达式语言特性参数包展开运算高
CTAD语言特性类模板参数推导高
保证拷贝消除语言特性强制消除临时对象拷贝高
std::invoke<functional>统一调用接口中
std::apply<tuple>tuple 展开为函数参数中
内联变量语言特性头文件中定义全局变量中
std::byte<cstddef>独立字节类型中
std::pmr 内存资源<memory_resource>多态分配器内存资源中
std::shared_mutex<shared_mutex>读写锁中
嵌套命名空间 (A::B::C)语言特性命名空间简写低
if/switch 初始化语句语言特性条件语句内变量声明中

C++20 ​

C++20 是继 C++11 之后最大的更新:Concepts、Ranges、Coroutines、Modules 四大特性彻底改变了模板编程、数据管道、异步流程和代码组织方式。同时 std::format、std::span、三路比较等特性显著改善了日常开发体验。编译器支持要求较高(GCC 10+ / Clang 10+)。

特性头文件简述适用性
Concepts<concepts>编译期模板参数约束高
Ranges<ranges>组合式范围与视图高
std::span<span>连续序列的非拥有视图高
std::format<format>类型安全的格式化输出高
std::jthread<thread>自动 join 的线程类高
三路比较 (<=>)<compare>统一比较运算符高
Coroutines<coroutine>无栈协程高
Modules语言特性替代头文件的编译单元高
consteval语言特性强制编译期求值中
constinit语言特性编译期静态变量初始化中
std::source_location<source_location>编译期源码位置信息中
指定初始化器语言特性按成员名初始化聚合体中
std::atomic_ref<atomic>原子引用操作中
std::latch / barrier<latch>线程同步原语中
std::stop_token<stop_token>协作式线程取消中
std::erase / erase_if<vector> 等容器元素删除统一接口中
std::is_constant_evaluated<type_traits>检测编译期求值上下文中
range-for 初始化语句语言特性range-for 带初始化低

C++23 ​

C++23 对 C++20 进行打磨与补齐:std::expected、std::print、std::generator、std::flat_map 等实用库组件填补了关键空白,deducing this 等语言改进精简了成员函数的写法。部分特性编译器支持仍在推进中(GCC 14+ / Clang 18+)。

特性头文件简述适用性
std::expected<expected>错误处理包装类型中
std::print / println<print>格式化输出到 stdout高
std::generator<generator>协程同步生成器中
std::flat_map / flat_set<flat_map>基于连续存储的有序容器中
std::mdspan<mdspan>多维数组非拥有视图中
std::stacktrace<stacktrace>调用栈捕获与打印中
deducing this语言特性显式对象参数推导中
std::to_underlying<utility>枚举转底层类型中
std::out_ptr / inout_ptr<memory>智能指针与 C 指针互操作中
optional monadic 操作<optional>and_then / or_else / transform中
Ranges 新适配器<ranges>zip / chunk / slide / enumerate 等中
if consteval语言特性编译期求值条件判断低
std::unreachable<utility>标记不可达代码低
多维下标运算符语言特性operator[] 接受多参数低
std::is_scoped_enum<type_traits>检测作用域枚举类型低

C++26 ​

C++26 是正在制定中的下一版标准(ISO/IEC 14882:2026)。截至 2026 年中,多数特性仍处于工作草案阶段、编译器支持初步或仅部分实现,最终去留与措辞还可能变动。这里只列高确定性的方向,编译器支持请以 cppreference 最新表格 为准。

特性头文件简述适用性
Reflection(静态反射)<meta>(草案)编译期类型自省与生成,C++26 旗舰特性中
Contracts(契约)<contracts>(草案)precondition/postcondition/assert 运行期契约检查中
std::execution / Senders<execution>(草案)scheduler/sender/receiver 异步任务图(P2300)中
std::linalg<linalg>基于 BLAS 的线性代数自由函数中
std::text_encoding<text_encoding>识别运行期文本编码低
Hazard pointers / RCU<hazard_pointer> <rcu>无锁并发原语低

C++26 仍是草案

上表特性编译器支持参差:GCC 16 对 reflection、contracts、linalg 有部分实现;std::execution 三大标准库均无可用实现(要用 NVIDIA/stdexec 跑);其余多数仍实验性。生产别依赖,学习可前瞻。详见 cppreference C++26 编译器支持。

按功能类别 ​

内存管理 ​

智能指针、可选值、错误处理等内存与资源管理相关特性。详见 内存管理参考卡。

特性版本头文件简述适用性
std::unique_ptrC++11<memory>独占所有权智能指针高
std::shared_ptrC++11<memory>共享所有权智能指针中
std::weak_ptrC++11<memory>打破 shared_ptr 循环引用中
std::make_uniqueC++14<memory>异常安全的 unique_ptr 创建高
std::optionalC++17<optional>可选值包装高
std::pmr 内存资源C++17<memory_resource>多态分配器内存资源中
std::expectedC++23<expected>错误处理包装类型中
std::out_ptr / inout_ptrC++23<memory>智能指针与 C 指针互操作中
optional monadic 操作C++23<optional>and_then / or_else / transform中
待补充参考卡

以下特性尚未创建参考卡:std::weak_ptr、std::pmr 内存资源、std::out_ptr / inout_ptr、optional monadic 操作

容器与视图 ​

标准容器、视图、字符串、格式化、算法等数据组织与操作特性。详见 容器与视图参考卡。

特性版本头文件简述适用性
STL 容器 (vector, list, deque, map, set...)C++98<vector> 等顺序/关联/无序容器族高
STL 算法C++98<algorithm>排序/查找/变换等通用算法高
std::stringC++98<string>可变长度字符串高
std::arrayC++11<array>编译期固定大小数组高
std::tupleC++11<tuple>异构固定大小容器中
std::unordered_map / setC++11<unordered_map>哈希表容器中
std::functionC++11<functional>多态函数包装器中
std::string_viewC++17<string_view>零拷贝字符串视图高
std::variantC++17<variant>类型安全的联合体中
std::anyC++17<any>类型安全的任意值容器低
std::filesystemC++17<filesystem>文件系统操作中
RangesC++20<ranges>组合式范围与视图高
std::spanC++20<span>连续序列的非拥有视图高
std::formatC++20<format>类型安全的格式化输出高
std::erase / erase_ifC++20<vector> 等容器元素删除统一接口中
std::flat_map / flat_setC++23<flat_map>基于连续存储的有序容器中
std::generatorC++23<generator>协程同步生成器中
std::print / printlnC++23<print>格式化输出到 stdout高
std::mdspanC++23<mdspan>多维数组非拥有视图中
Ranges 新适配器C++23<ranges>zip / chunk / slide / enumerate 等中
待补充参考卡

以下特性尚未创建参考卡:STL 容器、STL 算法、std::string、std::tuple、std::unordered_map/set、std::function、std::any、Ranges、std::erase/erase_if、Ranges 新适配器

并发 ​

线程、锁、原子操作、同步原语等并发与多线程特性。详见 并发参考卡。

特性版本头文件简述适用性
std::threadC++11<thread>平台无关线程高
std::mutex / lock_guardC++11<mutex>互斥锁与 RAII 锁高
std::atomicC++11<atomic>无锁原子操作高
std::condition_variableC++11<condition_variable>条件变量同步中
std::future / asyncC++11<future>异步任务与结果获取中
std::chronoC++11<chrono>时间库高
std::shared_timed_mutexC++14<shared_mutex>定时共享互斥锁低
std::shared_mutexC++17<shared_mutex>读写锁中
std::jthreadC++20<thread>自动 join 的线程类高
std::atomic_refC++20<atomic>原子引用操作中
std::latch / barrierC++20<latch>线程同步原语中
std::stop_tokenC++20<stop_token>协作式线程取消中
待补充参考卡

以下特性尚未创建参考卡:std::condition_variable、std::future / async、std::chrono、std::shared_timed_mutex、std::shared_mutex、std::atomic_ref、std::latch / barrier、std::stop_token

核心语言特性 ​

关键字、语法糖、类型系统、编译期机制等核心语言特性。详见 核心语言参考卡。

特性版本头文件简述适用性
RAII (构造/析构/拷贝)C++98语言特性资源获取即初始化高
异常处理C++98语言特性结构化错误处理中
命名空间C++98语言特性防止名称冲突高
运算符重载C++98语言特性自定义类型运算行为中
iostreamC++98<iostream>类型安全的 I/O 流中
lambda 表达式C++11语言特性匿名函数对象高
autoC++11语言特性自动类型推导高
decltypeC++11语言特性表达式类型查询高
constexprC++11语言特性编译期常量与函数高
范围 forC++11语言特性容器遍历语法糖高
移动语义 (右值引用)C++11语言特性资源转移而非拷贝高
std::move / std::forwardC++11<utility>移动与完美转发工具高
nullptrC++11语言特性类型安全的空指针高
enum classC++11语言特性作用域强类型枚举高
override / finalC++11语言特性虚函数显式标注高
static_assertC++11语言特性编译期断言高
用户自定义字面量C++11语言特性自定义字面量后缀中
委托/继承构造C++11语言特性构造函数复用中
alignas / alignofC++11语言特性对齐控制与查询中
泛型 lambdaC++14语言特性lambda 参数使用 auto高
返回类型推导C++14语言特性函数返回值 auto中
constexpr 扩展C++14语言特性放宽 constexpr 限制高
decltype(auto)C++14语言特性完美转发返回类型推导中
二进制字面量C++14语言特性0b 前缀二进制整数中
结构化绑定C++17语言特性多返回值解构高
if constexprC++17语言特性编译期条件分支高
CTADC++17语言特性类模板参数推导高
保证拷贝消除C++17语言特性强制消除临时对象拷贝高
内联变量C++17语言特性头文件定义全局变量中
std::byteC++17<cstddef>独立字节类型中
嵌套命名空间C++17语言特性A::B::C 简写低
if/switch 初始化语句C++17语言特性条件语句内变量声明中
三路比较 (<=>)C++20<compare>统一比较运算符高
CoroutinesC++20<coroutine>无栈协程高
ModulesC++20语言特性替代头文件高
constevalC++20语言特性强制编译期求值中
constinitC++20语言特性编译期静态初始化中
std::source_locationC++20<source_location>编译期源码位置中
指定初始化器C++20语言特性按成员名初始化聚合体中
deducing thisC++23语言特性显式对象参数推导中
std::to_underlyingC++23<utility>枚举转底层类型中
std::unreachableC++23<utility>标记不可达代码低
if constevalC++23语言特性编译期求值条件判断低
多维下标运算符C++23语言特性operator[] 多参数低
std::stacktraceC++23<stacktrace>调用栈捕获与打印中
待补充参考卡

以下特性尚未创建参考卡:移动语义、static_assert、用户自定义字面量、委托/继承构造、alignas / alignof、返回类型推导、constexpr 扩展、decltype(auto)、二进制字面量、CTAD、保证拷贝消除、std::byte、if/switch 初始化语句、consteval、constinit、std::source_location、指定初始化器、std::to_underlying、std::unreachable、if consteval、多维下标运算符

模板与元编程 ​

模板、约束、类型特征、编译期计算等泛型编程与元编程特性。详见 模板与元编程参考卡。

特性版本头文件简述适用性
类模板 / 函数模板C++98语言特性泛型编程基础高
可变参数模板C++11语言特性任意数量模板参数高
std::initializer_listC++11<initializer_list>统一初始化列表高
std::integer_sequenceC++14<utility>编译期整数序列中
折叠表达式C++17语言特性参数包展开运算高
std::invokeC++17<functional>统一调用接口中
std::applyC++17<tuple>tuple 展开为函数参数中
ConceptsC++20<concepts>编译期模板参数约束高
std::is_constant_evaluatedC++20<type_traits>检测编译期上下文中
std::is_scoped_enumC++23<type_traits>检测作用域枚举低
待补充参考卡

以下特性尚未创建参考卡:std::integer_sequence、std::invoke、std::apply、std::is_constant_evaluated、std::is_scoped_enum


部分内容参考自 cppreference.com,采用 CC-BY-SA 4.0 许可

pdf-latest-4-g85128cc · 85128cc · 2026-10-05