C++ 在设计上虽然也提供了一些类型安全掩护措施,如强类型系统、访问控制、函数重载、引用与指针区分、自定义类型转换的查抄以及异常处置惩罚等,但作为一门系统级、底层的语言,C++ 的类型安全性仍不如 Java、C# 等语言。别的,C++ 的内存管理相对复杂,必要程序员手动管理内存,这增加了内存泄漏和悬挂指针等问题的风险。
为了使 C++ 变得更加安全,C++ 专家和 ISO C++ 委员会主席 Herb Sutter 提出了一些方法,包括依靠工具、推广安全语言特性、不安全特性必要显式启用等。这些方法旨在减少无意的风险,但并不意味着 C++ 会完全变成像 Rust 一样的安全语言。
开发者社区的态度:
Rust 和 C++ 在开发者社区中有差别的定位和用途。Rust 因其内存安全性而备受关注,特别适用于必要高度安全性的领域,如操作系统、嵌入式系统和网络服务等。而 C++ 则因其高效的性能、机动的语法和广泛的库支持而广泛应用于系统级编程、游戏开发、图形界面开发等领域。
因此,即使 C++ 在某些方面进行了改进以进步安全性,也不太可能完全放弃其原有的特性和上风,变成与 Rust 完全雷同的语言。相反,C++ 可能会继承在保持其性能上风的同时,通过添加新的特性和改进来进步安全性。
将来可能的语言改进:
C++ 是一种活的语言,会随着时间的推移而进化。将来 C++ 可能会引入更多的安全特性和工具来减少与内存安全相干的弊端。然而,这并不意味着 C++ 会完全变成像 Rust 一样的安全语言。相反,C++ 可能会继承在其焦点特性上进行改进和扩展,以满意差别领域的需求。
综上所述,虽然 C++ 可能会在将来进行一些改进以进步安全性,但它不太可能完全变成像 Rust 一样的安全语言。这是因为 C++ 和 Rust 在设计目的、应用场景和开发者社区的态度等方面存在差异。C++ 可能会继承在保持其性能上风的同时,通过添加新的特性和改进来进步安全性。
对于如何使 C++ 成为一种类似 Rust 及其他内存安全语言(MSL)的安全语言,C++ 专家、ISO C++ 委员会主席 Herb Sutter 在最近的一篇文章中表达了他的见解。他的方法包括依靠工具(与其他 MSL 一样)、推广安全语言特性、不安全特性必要显式启用等等。