C++26是继C++23之后正在修订中的C++编程语言开放标准草案,其正式版本预计将于2026年发布。目前已发布的修订草案为N4981。
特性
已被C++26接受的新特性包括:
语言特性
- 未求值字符串(Unevaluated strings)。
- 将 @、$ 和 ` 添加到基本字符集。
- 支持从 void* 进行 constexpr 转换。
- 用户自定义的 static_assert 消息。
- 无命名的占位变量(Placeholder variables)。
- 包索引(Pack indexing)。
- 结构化绑定(structured bindings)的属性(Attributes)。
- 未初始化读取的错误行为。
- = delete("reason"); (可以为删除函数提供删除原因)。
- 可变参数友元(Variadic friends)。
- constexpr 放置 new 表达式。
- 将结构化绑定声明作为条件使用。
- 折叠表达式(fold expressions)中约束(constraints)的排序。
- 删除指向不完整类型(incomplete type)指针应该是格式错误(ill-formed)的。
- 结构化绑定可以引入参数包(pack)。
- 常量求值(constant-evaluation)中允许抛出异常。
- constexpr 结构化绑定与对 constexpr 变量的引用。
- 牛津可变逗号(Oxford variadic comma),即“弃用前无逗号的省略号参数。语法 (int...) 与 C 语言不兼容,对 C++ 也有害,可以很容易用 (int, ...) 替代。”
- 移除弃用的数组比较。
- 契约
标准库特性
- 为 std::chrono 值类增加哈希支持。
- std::is_within_lifetime 类型检测。
- 文件流(file streams)中的原生句柄(Native handles)支持。
- 将字符串流(string streams)与 std::string_view 接口对接。
- 将 std::bitset 与 std::string_view 接口对接。
- 与 提供更多的 constexpr 支持。
- 在比率(ratios)中添加新的 2022 年 SI 前缀:std::quecto、std::ronto、std::ronna 和 std::quetta。
- std::copyable_function。
- std::submdspan()。
- :调试支持模块。
- :基于 BLAS 的自由函数线性代数接口。
- 向 std::complex 添加元组协议(tuple protocol)。
- views::concat。
- 字符串与字符串视图的拼接。
- std::ranges::generate_random。
- 使用 std::println() 打印空白行。
- std::formatter 格式化器。
- 支持饱和算术(Saturation arithmetic),包括 std::add_sat、std::div_sat 等。
注释
另见
*C++
*C++23
*C++20
*C++17
*C++14
*C++11
评论 (0)