近日,ISO C++ 委员会主席 Herb Sutter 在其个人博客宣布,他已经离开了工作 22 年的微软,正式成为金融公司 Citadel Securities 的一名技术研究员。他在 C++ 标准委员会和社区的职责保持不变,继续担任 ISO C++ 标准委员会主席以及标准 C++ 基金会主席的职务,持续推动 C++ 的未来发展。
博客截图
他表示:在 Visual C++ 编译器团队工作的 22 年是一段非常精彩的经历,和一流的成员共事,即使面临挑战也非常有吸引力。Sutter 作为一个负责基础技术(比如 C++ 主流编译器)的团队成员,无需频繁跳槽就能接触到有趣的项目。因为很多创新项目都需要得到编译器的支持,这样就会自然而然的跟他们联系上。所以,他才能在该岗位上坚守了这么长的时间。
“2024 年是 C++ 的关键之年”,Sutter 在博客中提到。在 9 月份的 CppCon 大会上,他提到了未来十年的 C++ 发展方向是围绕反射和安全性改进展开。
改进 std::execution(异步操作的标准库),以提高并发性和并行性,对 std::execution 标准库进行增强,以更好地支持并发操作和并行计算 类型和内存安全性改进,旨在与其他现代、更安全的语言相媲美,博客中还提到针对安全性改进的一些提案,比如 C++26 中未初始化的局部变量将不再是未定义行为(UB)。这意味着 C++ 在解决安全性相关的 UB 方面迈出了重要的第一步,也让开发者可以享受前所未有的简单迁移路径:仅需用 C++26 编译器重新编译代码,无需任何手动修改,代码就会更安全,并减少 UB。” 反射和代码生成功能,Sutter 形容它们是编译时编程革命的一部分,并称其为“可能是有史以来最具影响力的特性”。 契约,指定接口以便检查其一致性,包括先决条件、后置条件和有效状态的断言。
当下围绕 C++ 讨论最多的莫过于安全性,这也是 C++ 一直以来的挑战。有不少专家建议转向 Rust,但 Sutter 表示:C++ 的“安全性提升”并不意味着要达到完美,而是聚焦于解决“优先级高的易改进问题”。具体措施包括:
在标准库中引入更多安全性更高的组件; 移除与安全性相关的未定义行为; 引入新的编译时静态安全规则; 增强动态运行时的安全检查。
正如 Bjarne Stroustrup 所言,C++11 通过引入 auto 类型推导、lambda 表达式、标准化安全智能指针、range-for 循环、移动语义和 constexpr 编译时代码等特性,让人感觉像是一门全新的语言。它重新定义了 C++ 的编程体验,使语言更加简洁、高效,并奠定了“现代 C++”的基础。
随后,C++14/17/20/23 在过去十年间不断扩展和完善这些特性,推动了语言的持续进化。尤其是 C++11 的移动语义,为开发者提供了极为理想的迁移路径:“只需使用 C++11 编译器重新编译现有代码,无需任何手动修改,程序性能就能显著提升。” 自 2011 年以来,“现代 C++” 几乎等同于 “C++11 及之后的版本”,标志着 C++ 使用方式和体验的深刻变革。
参考链接:
https://herbsutter.com/2024/11/
https://devclass.com/2024/11/12/iso-c-chair-herb-sutter-leaves-microsoft-declares-forthcoming-c-26-most-impactful-release-since-c11/