C++ and the C language have been the target of criticism by the White House, which in February urged developers to stop using these languages over memory safety concerns. C++ founder Bjarne Stroustrup responded by defending the language. The Safe C++ Extensions proposal aims to turn the tide for C++. A key component of the plan is the Safe Standard Library, which would provide developers with memory-safe implementations of essential data structures and algorithms, according to Falco. The goal of the proposal is to advance a superset of C++ with a “rigorously safe subset,” the proposal states. C++ code in this safe context would exhibit the same strong safety guarantees as code written in Rust, it says.
The Safe C++ Extensions proposal contrasts ISO C++ with Safe C++. “In ISO C++, soundness bugs often occur because caller and callee don’t know who should enforce preconditions, so neither of them do. In Safe C++, there’s a convention backed up by the compiler, eliminating this confusion and improving software quality.”
In the introduction to the proposal, the C++ Alliance acknowledges issues with the language. “Much of the country’s critical infrastructure relies on software written in C and C++, languages which are very memory-unsafe, leaving these systems more vulnerable to exploits by adversaries.” However, Safe C++ developers would be prohibited from writing operations that may result in undefined behaviors that compromise lifetime safety, type safety, or thread safety.