C++ 26已初具规模
正式增加了对 C++26 中
_
通配符的支持
std::lock_guard _(mutex); auto [x, y, _] = f(); inspect(foo) { _ => bar; };
标准属性的三个可忽略性规则
[已在 C++23 中] Rule 1. 标准属性必须是可解析的(即,不能只包含随机的废话)。
[已在 C++23 中] Rule 2. 删除标准属性不能改变程序的含义:它可以减少程序可能的 legal behaviors,但不能发明 new behaviors。
[新] Rule 3. Feature test macros 不应假装支持某个属性,除非实现实际上实现了该属性的可选语义(即,不只是解析它然后忽略它)。
将
@
、%
和`
添加到基本字符集中。消除了一种可能性,即仅仅对 C++ 代码进行标记就可以成为 C++ 编译器本身的未定义行为的来源。
向强大的编译时库又迈进了一步,包括使
std::format
有可能支持constexpr
编译时字符串格式化。提案 “User-generated static_assert messages” 允许编译时
static_assert
接受不是 string literals 的 stringlike messages。例如,流行的 {fmt} 库支持constexpr
字符串格式化,因此这段代码可以在 C++26 中运行:
static_assert(sizeof(S) == 1, fmt::format("Unexpected sizeof: expected 1, got {}", sizeof(S)));
近期有较多投资机构在寻找优质开源创业项目,有意向可以添加微信 Hikalin,获取一手信息。
往期推荐
点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦
微信扫码关注该文公众号作者
戳这里提交新闻线索和高质量文章给我们。
来源: qq
点击查看作者最近其他文章