Skip to content

C++26

状态说明:本文按 2026-06-02 可公开资料整理。C++26 标准流程、提案接收状态和编译器支持变化很快。合并前需重新核对 WG21 draft、cppreference compiler support 和各编译器 release note。

已进入工作草案的特性

Contracts(契约)

前置条件、后置条件和断言的语言级支持:

cpp
int sqrt(int n)
    pre (n >= 0)
    post (r: r * r <= n)
{
    // ...
}

反射(Reflection)

编译期反射能力——在编译期查询类型信息、成员列表、枚举值等。这是 C++ 元编程的范式转变。(P2996R7 已被接受)

模式匹配(Pattern Matching)

inspect 表达式,类似 Rust 的 match,对 variant、optional 等类型尤其有用。

std::simd

标准化的 SIMD 类型和操作,编写可移植的向量化代码。(P1928)

Senders/Receivers

标准化的异步执行框架,比 std::async 更灵活、更可控。(P2300)

constexpr 扩展

更多标准库函数可在编译期使用。

特性状态分类

状态含义示例
已进入工作草案已被 C++26 接受反射 (P2996)、Contracts
已投票接受WG21 投票通过,等待合并Senders/Receivers (P2300)
仍在演进提案仍在修订中P3394(注解)、P3436
延后到 C++29未赶上 C++26 时间线部分 pattern matching 细节
仅实验实现编译器实验分支支持部分 constexpr 扩展

编译器支持状态

编译器反射Contractsstd::simdNotes
Clang/LLVM实验性 (-freflection)跟进中N/A参考实现
GCC实验性分支跟进中<experimental/simd>GCC 14+
MSVC跟进中跟进中N/A

状态说明

C++26 的特性仍在不断演化。本文档会跟踪最新进展,但内容可能滞后于标准委员会的最新决定。

参考来源:

延伸阅读

基于 MIT 许可发布