Technology news and discussion on TalkFuse.
C++26 release faces delay after ISO ballot rejects draft over Contracts
C++26 may miss its expected release date after an ISO ballot rejected its draft, with a dispute over the proposed Contracts feature a major reason for opposition. The disagreement has exposed tensions among C++ maintainers over how to balance added safety checks against complexity and the language’s performance priorities.
Contracts let developers specify conditions that should hold before or after code runs, and assertions that check those conditions. The October ballot recorded 13 votes in favour, 9 against and 12 abstentions; ISO rules require negative votes to be no more than 25 per cent. Bjarne Stroustrup and colleagues argue the proposal is rushed and overly complex, while supporters say it has been considered for years and that returning the draft is part of the standards process. A delay could mean the version is informally called C++27.
In short
- ISO rejected the C++26 draft, with Contracts a key point of dispute.
- The ballot had 13 votes in favour and 9 against.
- The delay could push the expected release beyond this year.
Steelman: both sides, in good faith
The strongest fair case each way — we don't pick a winner.
The case for
Supporters can argue that contracts make important assumptions and guarantees explicit, helping developers detect errors and improve software safety. They say the feature has been considered over several years, and that an adverse ballot is a normal part of standards work: addressing objections can produce a stronger standard, even if it delays release.
The case against
Opponents can argue that contracts are too complex or insufficiently settled for inclusion in this release, and that rushing them into the standard could burden implementers and users with difficult design choices. Given C++’s performance priorities and the costs of standardising a feature for the long term, they may see postponement as preferable to adopting a proposal they consider unready.
Explained simply
C++ is a programming language used to build software, including operating systems, games and other performance-critical programmes. Its rules are updated through an international standards process, which aims to agree changes for programmers and the organisations that rely on the language.
The Contracts proposal would let programmers state conditions that code is expected to meet, and check those conditions as it runs. Supporters see this as a way to make errors easier to detect; critics, including C++ creator Bjarne Stroustrup, say the proposal is too complex and has not had enough time to mature.
The disagreement reflects a broader challenge for the language’s maintainers: adding features that may help safety while keeping C++ manageable and fast. A standards draft needs sufficient support in an ISO ballot before it can be approved.
Read the full article at the source →
Originally published by The Register as “C++26 stumbles at finish line over Contracts dispute”.