E-Ink 新闻日报

返回列表

C++26:简单的无限循环不再属于未定义行为

C++26消除了简单无限循环(如while(true);)的未定义行为,该行为此前允许Clang等编译器将整个循环优化掉并执行主函数之后的不可达代码。修复来自提案P2809R3,已被采纳为缺陷报告,实现方可向后移植到更早的C++标准中。

背景

C++在处理未定义行为方面一直存在诸多微妙的历史问题,尤其是C++11为多线程引入的前进保证。这一保证有时被编译器优化阶段激进地解读,导致意外优化结果。

来源
Lobsters
发布时间
2026年9月17日 03:33
评分
7.0 / 10