Paul Krill
Editor at Large

C++ Alliance takes aim at C++ memory safety

news
Sep 17, 20243 mins

Safe C++ Extensions proposal would provide C++ developers with memory-safe implementations of essential data structures and algorithms, along with features that prevent common memory-related errors.

A group of construction workers wearing hard hats and safety gear standing in a circle with their hands together.
Credit: worradirek / Shutterstock

Concerns about C++ memory safety soon could be in the past. The C++ Alliance, a charity whose mission is to make the C++ language accessible and useful, is working to add memory safety features to C++, through its Safe C++ Extensions proposal.

The alliance intends to submit the Safe C++ Extensions proposal to the ISO for inclusion in the C++ standard.

Partnering with engineer Sean Baxter, the C++ Alliance describes its plan as a “revolutionary” proposal. “This collaboration marks a significant milestone in the C++ ecosystem, as the need for safe code has never been more pressing,” alliance president and director Vinnie Falco wrote in a September 12 blog post. “With the increasing importance of software security and reliability, developers are facing mounting pressure to adopt safer coding practices. The Safe C++ Extensions aim to address this critical need by introducing novel features that prevent common memory-related errors.”

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.

Paul Krill

Paul Krill is editor at large at InfoWorld. Paul has been covering computer technology as a news and feature reporter for more than 35 years, including 30 years at InfoWorld. He has specialized in coverage of software development tools and technologies since the 1990s, and he continues to lead InfoWorld’s news coverage of software development platforms including Java and .NET and programming languages including JavaScript, TypeScript, PHP, Python, Ruby, Rust, and Go. Long trusted as a reporter who prioritizes accuracy, integrity, and the best interests of readers, Paul is sought out by technology companies and industry organizations who want to reach InfoWorld’s audience of software developers and other information technology professionals. Paul has won a “Best Technology News Coverage” award from IDG.

More from this author