The next version of the C++ programming language may miss its release date after a rebellion over proposed security features left its international standards committee fighting among itself.
According to I-Programmer, the dispute concerns Contracts, a long-awaited addition intended to help programmers catch errors by checking whether software behaves according to predefined conditions. Unfortunately, the people responsible for deciding how the language should work cannot agree on whether the feature is ready.
C++ creator Bjarne Stroustrup is among those opposing the current implementation, known as P2900. He and several experienced language designers argue that it introduces unnecessary complexity, could damage performance, and could create new opportunities for programming errors.
The argument reached boiling point on 23 October when the Draft International Standard for C++26 failed to secure sufficient support from national standards bodies. The vote was supposed to be one of the final stages before publication, leaving the committee with the programming equivalent of discovering that someone has removed the runway during landing.
Contracts allow developers to specify conditions that must be satisfied before a function executes and conditions that should hold when it finishes. These checks can catch incorrect assumptions before they turn into bugs, although their effectiveness depends on programmers identifying the conditions worth checking.
Such mechanisms have existed in languages including Ada and Eiffel for decades. C++ has been trying to introduce its own version for years, with an earlier proposal removed from C++20 after disagreements about its design.
Stroustrup’s objections go far beyond a complaint about implementation details. In an August paper co-authored with several other experts, he warned that the proposed Contracts system threatened the language’s founding principles by introducing complexity and overhead without delivering the safety guarantees developers increasingly need.
Critics argue that the implementation remains insufficiently tested, has incomplete support for important programming techniques, and relies too heavily on runtime checks. They favour a simpler approach using libraries and existing language mechanisms, which they believe could achieve useful results without permanently complicating C++.
The criticism is awkward because C++ has spent years defending its reputation against languages such as Rust, which promise stronger memory safety. Adding a feature intended to improve software reliability would seem sensible, provided it does not introduce another collection of traps for programmers to fall into.
Supporters of Contracts are furious that the proposal has been stopped so late in the process. They point out that the feature has undergone years of development and repeatedly secured majority support within the C++ standards committee.
Committee member Andreas Fertig argues that opponents have effectively overturned decisions made through the normal standards process. In a blog post, he accused the losing side of refusing to accept previous votes and warned that the dispute had damaged trust among the people developing the language.
The failed ballot leaves ISO working group WG21 with several unpleasant choices. It could revise the draft and submit it for another vote, send the proposal back for further committee work or publish a reduced version of the standard.
None of those options guarantees that C++26 will arrive on schedule. A sufficiently long delay could see the standard published in 2027, creating the slightly embarrassing prospect of a programming language version named after a year in which it never appeared.
Scrapping the current release entirely is another possibility, although that would potentially delay unrelated improvements until C++29. Developers who have spent years preparing those features would understandably be less than delighted to see their work held hostage by the Contracts dispute.
The disagreement is particularly serious because C++ remains fundamental to operating systems, game engines, embedded software and performance-sensitive applications. Changes to the language can affect enormous amounts of existing code, while poorly designed features can leave developers dealing with compatibility headaches for decades.
Fertig says the next WG21 meeting begins on 16 November, when members will attempt to break the deadlock. That gives the committee a few days to decide whether to compromise, remove Contracts, or keep arguing while the release schedule disappears over the horizon.







