The C++ standards committee has decided to prioritize the development of ‘Profiles’ over the Safe C++ proposal, which aimed to incorporate Rust-style memory safety features into the language. Sean Baxter, co-author of the Safe C++ initiative, stated that the committee voted to support Profiles instead, effectively shelving Safe C++. Despite some committee members expressing interest in continuing the work, Baxter believes the Rust safety model is unpopular and that the decision is final.
Safe C++ was designed to enable C++ developers to achieve memory safety similar to Rust without needing to learn a new language. The proposal aimed to prevent users from writing unsound code through compile-time checks such as borrow checking and type safety analysis. This approach would allow for incremental migration of code, as the safe features would apply only to code within the safe context, leaving existing unsafe code unaffected.
Erich Keane, a C++ committee member and co-chair of the C++ Evolution Working Group (EWG), noted that Baxter’s proposal received a vote of encouragement, with approximately half of the committee members supporting it. However, the majority favored the development of Profiles. Keane expressed that the committee would be open to further work on standardizing Safe C++ if Baxter continued his efforts. Baxter, however, indicated that the committee’s rejection of the Rust safety model is a significant setback and that further work on his part would not change the committee’s stance.
The decision has sparked discussions within the developer community about the future of memory safety in C++. While some developers advocate for the adoption of Rust-style safety features, others emphasize the importance of maintaining backward compatibility and supporting existing codebases. This reflects ongoing debates within the C++ community about balancing innovation with the practical challenges of evolving a widely used language.