Cpp Timeline
C++: 从 C++11 到 C++26 的演进之路
C++ 从 2011 年开始进入了快速发展的时代,每三年一个新标准,带来了大量现代特性。本文将梳理 C++11 到 C++26 的主要特性和常用特性。
详细指南
C++11
| Core Feature | Library | Concurrency |
|---|---|---|
C++14
| Core Feature | Library | Concurrency |
|---|---|---|
C++17
| Core Feature | Library | Concurrency |
|---|---|---|
C++20
| The Big | Core Feature | Library | Concurrency |
|---|---|---|---|
C++23
| Core Feature | Library | Concurrency |
|---|---|---|
|
C++26
| Core Feature | Library | Concurrency |
|---|---|---|
日常开发必备
C++11:
auto- 几乎无处不在- Lambda 表达式 - 回调和算法
- 智能指针 - 资源管理
- 范围 for 循环 - 遍历容器
nullptr- 空指针override- 虚函数重写
C++14:
- 泛型 Lambda - 更灵活的 lambda
std::make_unique- 创建 unique_ptr- 数字分隔符 - 提高可读性
C++17:
- 结构化绑定 - 解构返回值
std::optional- 可选值std::string_view- 避免字符串拷贝std::invoke- 统一调用接口std::filesystem- 文件系统操作[[nodiscard]]- 防止忽略返回值
C++20:
- Concepts - 模板约束
- Ranges - 函数式风格处理序列
std::format- 格式化输出std::span- 数组视图contains- 容器查找
C++23:
std::print/std::println- 简化输出std::expected- 错误处理std::generator- 生成器
C++26:
- 静态反射 - 编译期类型 introspection
- 契约 - 前置/后置条件与断言
std::execution/ sender-receiver - 统一异步模型std::simd- 数据并行
兼容性考虑
- C++11 - 所有现代编译器完全支持
- C++14 - GCC 5+, Clang 3.4+, MSVC 2015+
- C++17 - GCC 7+, Clang 5+, MSVC 2017 15.8+
- C++20 - GCC 10+, Clang 12+, MSVC 2022 16.10+
- C++23 - GCC 13+, Clang 16+, MSVC 2022 17.5+
- C++26 - GCC 15+, Clang 20+, MSVC 2022 17.14+(实验性支持
-std=c++26//std:c++latest)








