C++ 会变成像 Rust 一样的安全语言吗?

💡 原文中文,约1900字,阅读约需5分钟。
📝

内容提要

C++专家Herb Sutter建议通过依赖工具、推广安全语言特性以及显式启用不安全特性来提高C++的安全性。Bjarne Stroustrup表示赞同,并提到ISO委员会在C++配置文件方面所做的工作。批评者认为,与Rust相比,C++在内存安全性方面仍然存在不足,例如线程安全。Sutter和Stroustrup认为,配置文件是使C++更安全的关键特性,而不会限制其表达能力。Sutter提供了具体建议,以帮助ISO委员会实现减少C++代码中CVE的目标。

🎯

关键要点

  • C++专家Herb Sutter建议通过依赖工具、推广安全语言特性和显式启用不安全特性来提高C++的安全性。

  • Sutter指出,C++需要解决四种主要的内存安全漏洞,包括越界读、越界写、空指针解引用和访问已释放内存。

  • Sutter认为,C++应严格执行安全规则,只有在程序员明确选择不遵循时,才允许不安全行为。

  • Sutter强调,默认启用安全规则不会限制C++的能力,采用非标准实践需显式选择以减少风险。

  • Sutter提到,大多数高严重性CVE与内存安全无关,MSL也有CVE,最终目标不是完全消除CVE。

  • Bjarne Stroustrup支持Sutter的观点,认为C++可以像Rust一样安全,但不那么复杂。

  • Stroustrup提到ISO委员会正在开展C++配置文件的工作,以便强制执行安全规则。

  • C++配置文件包括类型安全、边界安全和生命周期安全,符合这些规则的代码被认为是安全的。

  • 批评者指出C++在内存安全性方面仍存在不足,特别是在线程安全等领域。

  • Sutter和Stroustrup一致认为,配置文件是提高C++安全性的关键特性,可以减少98%的相关CVE。

  • Sutter提出了一些具体建议,以帮助ISO委员会实现减少C++代码中CVE的目标。

➡️

继续阅读