标签
C++26 未通过 ISO DIS 投票——这是 C++ 草案历史上首次未能通过——契约(contracts)、反射、std::execution 以及库加固(library hardening)均未获批准,仅获得 20 票中的 12 票赞成和 9 票反对。
一篇来自 Lobste.rs 的讨论,主题是组合对象以及即将纳入 C++26 标准的 std::polymorphic 类型,探讨它如何在不依赖继承的情况下实现类型擦除多态。
C++26 引入了新的 <debugging> 头文件,提供 std::breakpoint()、std::is_debugger_present() 和 std::breakpoint_if_debugging(),通过提案 P2546R5 和 P2810R4 实现标准化,以取代平台特定的调试宏。
一份关于 C++26 契约特性(P2900)的入门教程,介绍前置条件与后置条件如何取代传统的基于 assert 的检查,并涵盖编译器选项、求值语义及常见陷阱。
C++26 引入了 std::indirect,这是一个词汇类型,为堆分配对象提供值语义和常量传播,是类成员中比 std::unique_ptr 更安全的替代方案。
C++26 introduces the #embed preprocessor directive, allowing binary files to be embedded directly at compile time without external tools, simplifying resource inclusion in C++ programs.
对 C++26 中 std::function 和 std::copyable_function 之间互转换的技术分析,讨论了实现方法和性能权衡,并特别指出 libstdc++ 目前采用了一种较次优的方法。
解释C++中的PImpl惯用法,以及即将推出的C++26 std::indirect类型如何简化其实现,减少样板代码和手动内存管理。
文章批评了 C++26 中的新 std::simd 库,认为它比标量循环慢,编译速度慢,并且被自动向量化器和 Google Highway 等替代库超越,质疑其在经过十年标准化过程后的价值。