文章摘要
2026年3月,ISO C++标准委员会在伦敦克罗伊登完成了C++26的技术工作,解决了所有国际意见,即将进入最终国际批准投票阶段,预计不久后由ISO正式发布。
文章总结
C++26标准正式完成:2026年3月ISO C++标准会议(英国伦敦克罗伊登)纪要
核心消息:C++26标准技术工作已全部完成! 🎉
3月28日,ISO C++委员会在英国伦敦克罗伊登完成了C++26的技术工作。会议处理了所有国际反馈意见,即将进入最终国际投票阶段(DIS),预计很快将由ISO正式发布。
会议概况
- 主办方:Phil Nash(Shaved Yaks公司)与标准C++基金会
- 参会规模:210名专家(130人现场/80人远程),代表24个国家
- 工作组:23个活跃子组,其中9个在本周并行运作
- 特别活动:举办了关于编译器实现、内存安全、计量单位的三场晚间技术会议
C++26四大核心特性
反射机制
被称作"自模板诞生以来最重要的升级",首次让C++具备自我描述能力,将彻底改变抽象表达方式。内存安全增强
- 消除未初始化局部变量的未定义行为(UB)
- 强化标准库边界检查(覆盖vector/span/string等类型)
- 实际应用效果:Google部署后修复1000+漏洞,段错误率降低30%,平均性能损耗仅0.3%
契约编程
支持函数前后条件检查,比C的assert更完善。最终投票结果:114票赞成 vs 12票反对。std::execution异步模型
提供统一的并发/并行控制框架,支持结构化并发以避免数据竞争。
标准实施展望
- 快速采用预期:相比C++17/20/23,预计行业采纳速度更快
- 编译器支持:GCC/Clang已实现三分之二特性,反射和契约功能已合并到GCC主干
- 后续计划:6月(捷克布尔诺)和11月(巴西布基亚斯)会议将启动C++29工作
C++29方向
重点推进内存安全改进,包括: - 进一步减少未定义行为 - 开发安全子集规范(基于Bjarne Stroustrup的类型安全方案) - 参考苹果WebKit实践经验(已保护400万行代码)
文章最后感谢了所有参与标准制定的专家,并强调C++在提升安全性的同时仍将坚守"零开销原则"的核心哲学。
(注:原文中大量会议组织细节、历史版本比较、作者个人观点等内容已精简,保留技术要点和关键数据。)
评论总结
以下是评论内容的总结,平衡呈现不同观点并保留关键引用:
对C++26新特性的期待
- 正面评价:多位开发者对反射功能(reflection)表示兴奋,认为这是重大进步
- "This is awesome...was sure that RTTI was the closest the language would ever get to having a true reflection system" (评论2)
- "Proper reflection is exciting" (评论3)
- 负面评价:部分人认为新特性实施缓慢或存在更基础的问题
- "I look forwards to getting to make use of this in 2040!" (评论3)
- "As long as programmers still have to deal with header files, all of this is lipstick on a pig" (评论11)
- 正面评价:多位开发者对反射功能(reflection)表示兴奋,认为这是重大进步
关于合约(Contracts)的争议
- 支持观点:认为前置/后置条件是有价值的功能
- "I am actually excited for post and pre conditions...underused feature in most languages" (评论12)
- 反对观点:担心增加语言复杂性和设计缺陷
- "piling on ever more complexity to a language which has already surpassed its complexity budget" (评论6)
- Bjarne批评引用:"bloated committee design and also incomplete" (评论6)
- 支持观点:认为前置/后置条件是有价值的功能
实施进度与编译器支持
- 关注编译器对新特性的实现情况
- "How far is Clang on reflection and contracts?" (评论10)
- 引用GCC进展:"GCC already has reflection and contracts merged in trunk" (评论10)
- 关注编译器对新特性的实现情况
其他技术争议
- 未初始化变量行为变更引发讨论
- "The 'erroneous behavior' redefinition...really interesting" (评论13)
- 对Unicode支持的批评
- "I don't care until they stop pretending Unicode doesn't exist" (评论8)
- 未初始化变量行为变更引发讨论
语言生态批评
- 多样性问题:"how male-centric systems programming languages are" (评论9)
- 模块系统疑问:"whether the small changes...will actually lead to more widespread adoption" (评论1)
被移除功能的遗憾
- "transparent hash strings for unordered_map are out" (评论7)
注:所有评论均无评分(None),因此未体现认可度差异。关键争议集中在合约设计和反射功能,同时存在对语言复杂性和基础架构问题的根本性质疑。