ISO C++委员会(WG21)已批准C++26标准,委员会成员赫布·萨特称其为自C++11以来最引人注目的版本,其中包含合约功能,尽管C++发明者比雅尼·斯特劳斯特鲁普等人对此功能表示反对。
委员会在伦敦克罗伊登召开会议,并于3月28日批准了该标准。根据萨特的报告,下一阶段将准备最终文档并提交国际审批。C++通常每三年发布一个新标准,委员会还通过了C++29的时间表,相关工作已经开始。
萨特表示,合约是C++26的主要功能之一。合约是在函数声明中设置前置条件和后置条件,以及在函数内添加断言语句的一种方式。该功能旨在帮助使C++代码更加安全可靠。
描述C++26合约的论文指出,"在试图为C++添加合约功能的背后,有着漫长而传奇的历史。"合约也是C++20工作草案的一部分,但WG21在2019年因提议设计的重大变更而将其移除。
C++26提案将自己描述为为C++26制作最小可行产品计划的巅峰之作。仍存在一些不足,例如不支持虚函数上的合约,但这预计会在未来版本中得到解决。
萨特是合约的支持者,在科罗拉多州奥罗拉举行的CppCon 2025上就"C++26合约的乐趣"发表演讲。
斯特劳斯特鲁普并不认同这一观点,他在去年关于C++26合约陷阱的演讲中表示:"据称这是一个最小可行产品。但它既不最小,也不可行。"
斯特劳斯特鲁普说他将建议不要在C++中使用合约。"这以非常晦涩的方式增加了复杂性。它根据代码所在位置改变代码的含义……我非常担心这种复杂性,担心我们是否能够正确使用它。"
萨特指出,一些"聪明且受人尊敬的ISO C++委员会成员对合约持续存在技术担忧。"正因如此,最终确定C++26标准的投票并非一致通过,有114票赞成,12票反对,3票弃权。然而,萨特表示"ISO C++委员会仍然需要合约,因此合约保留在C++26中。"
C++26还包括编译时反射,允许在没有任何运行时开销的情况下检查和生成代码。这与Java或C#中在运行时工作的反射不同。萨特称其为"C++有史以来表达高效抽象的最强大新引擎。"
萨特还谈到了C++在内存安全方面的改进,例如为未初始化读取定义错误行为。在C++中,未定义行为(UB)是错误和漏洞的主要原因,因此委员会的目标是减少它,这就是这种努力的一个例子。
C++26标准库得到了加固,萨特表示,在谷歌实施时,它修复了一千多个错误,并"将生产车队的段错误率降低了30%。"
另一个重要功能是std::execution,它为异步执行提供了一个框架,不过萨特警告说,由于文档不完善和缺乏完整的库支持,它比大多数C++功能"更难采用"。
Q&A
Q1:C++26标准中的合约功能是什么?
A:合约是在函数声明中设置前置条件和后置条件,以及在函数内添加断言语句的一种方式。该功能旨在帮助使C++代码更加安全可靠。不过目前还存在一些不足,例如不支持虚函数上的合约。
Q2:为什么C++发明者反对合约功能?
A:比雅尼·斯特劳斯特鲁普认为合约功能"既不最小,也不可行",会以非常晦涩的方式增加复杂性,还会根据代码所在位置改变代码的含义。他担心这种复杂性以及开发者是否能够正确使用它。
Q3:C++26还有哪些重要的新功能?
A:除了合约功能,C++26还包括编译时反射,允许在没有运行时开销的情况下检查和生成代码;改进的内存安全性,如为未初始化读取定义错误行为;以及std::execution框架,为异步执行提供支持。
好文章,需要你的鼓励
Replit与RevenueCat达成合作,将订阅变现工具直接集成至Replit平台。用户只需通过自然语言提示(如"添加订阅"),即可完成应用内购和订阅配置,无需离开平台。RevenueCat管理超8万款应用的订阅业务,每月处理约10亿美元交易。此次合作旨在让"氛围编程"用户在构建应用的同时即可实现商业变现,月收入未达2500美元前免费使用,超出后收取1%费用。
LiVER是由北京大学、北京邮电大学等机构联合提出的视频生成框架,核心创新是将物理渲染技术与AI视频生成结合,通过Blender引擎计算漫反射、粗糙GGX和光泽GGX三种光照图像构成"场景代理",引导视频扩散模型生成光影物理准确的视频。框架包含渲染器智能体、轻量化编码器适配器和三阶段训练策略,支持对光照、场景布局和摄像机轨迹的独立精确控制。配套构建的LiVERSet数据集含约11000段标注视频,实验显示该方法在视频质量和控制精度上均优于现有方法。
所有人都说AI需要护栏,但真正在构建它的人寥寥无几。SkipLabs创始人Julien Verlaguet深耕这一问题已逾一年,他发现市面上多数"护栏"不过是提示词包装。为此,他打造了专为后端服务设计的AI编程智能体Skipper,基于健全的TypeScript类型系统与响应式运行时,实现增量式代码生成与测试,内部基准测试通过率超90%。他认为,编程语言的"人类可读性时代"正走向终结,面向智能体的精确工具链才是未来。
这项由蒙特利尔学习算法研究所(Mila)与麦吉尔大学联合发布的研究(arXiv:2604.07776,2026年4月)提出了AGENT-AS-ANNOTATORS框架,通过模仿人类数据标注的三种角色分工,系统化生成高质量网页智能体训练轨迹。以Gemini 3 Pro为教师模型,仅用2322条精选轨迹对90亿参数的Qwen3.5-9B模型进行监督微调,在WebArena基准上达到41.5%成功率,超越GPT-4o和Claude 3.5 Sonnet,并在从未见过的企业平台WorkArena L1上提升18.2个百分点,验证了"数据质量远比数量重要"这一核心结论。