雄心勃勃的“安全C++”提案,旨在为C++带来类似Rust的内存和线程安全保证,已被放弃。该提案试图通过选择加入的“安全上下文”来创建C++的安全子集,允许现有代码保持“不安全”状态,同时为新的或重构的代码启用更安全的开发。然而,C++委员会优先考虑了一种不同的方法:“Profiles”(配置)。 Profiles定义了受约束的C++模式,通过*限制*现有语言特性来保证安全属性,而不是引入新的特性。这提供了向后兼容性——代码无需采用Profiles即可继续运行。虽然Profiles的范围不如安全C++全面,但被认为更实用且易于采用,解决了常见的C++陷阱,而无需强制执行完整的Rust安全模型。 社区对采用Rust模型的抵制以及委员会对不那么激进的方法的偏好促成了这一决定。尽管Profiles可能提供较弱的保证和不均匀的执行,但它们代表了通往更安全的默认C++标准的一个更现实的途径。