· via Hacker News – Front Page (hnrss.org)
ISO National Bodies vote down C++26 over Contracts, first failed DIS in C++ history
The C++26 Draft International Standard failed its ISO ballot after National Bodies objected to the Contracts feature, delaying the standard and putting C++29 work in doubt.

A routine vote turns historic
The ISO National Bodies rejected the C++26 Draft International Standard (DIS) on October 23, 2026, following a twelve-week voting period. According to Andreas Fertig, a member of the C++ Standardization Committee who described the outcome in a blog post that reached the Hacker News front page, the ballot did not achieve the two-thirds majority ISO requires at this stage. As far as he is aware, this is the first time a C++ DIS ballot has ever failed; since 1998 the step had run quietly as a formality. Fertig, who helps represent Germany's vote, adds that ISO rules bar him from publishing the detailed breakdown.
Contracts sank the vote
The comments submitted by the National Bodies point to a single feature: contracts. Several NBs concluded the feature is not ready to ship. Contracts have a long and bruising history in the language. Fertig was in the room in Cologne in 2019 when an earlier design was voted into C++20, and in the same room when it was removed from C++20 at that very meeting. A dedicated study group then worked through the topic from roughly 2020 to 2024 before handing its proposals to the Evolution Working Group, which forwarded the feature into C++26 by majority vote. In March 2026, WG21, the C++ Standardization Committee, approved the full C++26 draft including contracts with a large majority, though not without dissent.
What changed, Fertig argues, is an unwritten norm at the NB level: national bodies previously voted a standard down only when genuinely new information emerged or a process flaw was found. He does not accept that this happened here, arguing that existing objections restated in a new paper do not qualify as new information.
A rare precedent
Searching ISO records, Fertig could find only one other DIS that was not approved: ISO/IEC DIS 26926, the C++/CLI Language Specification, dated August 11, 2006. That project was ultimately abandoned, a precedent he raises to underline what may now be at stake.
Four exits, all of them slow
ISO's rules offer several paths after a failed DIS ballot: submit a revised draft for a new DIS vote, send a revised draft back to the committee stage, publish the draft as a Technical Specification, or cancel the project. Every option delays the next C++ standard, and even whether it will still be called C++26 is now uncertain.
The catch is that each route requires a majority inside WG21, the same committee that already voted, by more than the required two-thirds, to advance C++26 with contracts into the ballot phase. Fertig finds it hard to imagine that group discarding years of work that has repeatedly won approval, but equally hard to imagine the dissenting camp changing its position while contracts remain in the draft.
Cancellation is the starkest option. As Fertig understands it, that would mean falling back to C++23 and proceeding directly to C++29, forcing features already accepted into C++26 to be re-submitted through individual papers. If the person backing a given paper lacks the time or motivation, features could quietly drop out of the successor standard.
Next steps
WG21 meets on November 16, 2026, with breaking the deadlock at the top of the agenda. Fertig expects the fallout to reach C++29 as well, and says there is currently no reason to continue work on that track until the situation is resolved.
Why it matters
C++ currently has no clear path to its next standard, leaving compiler vendors, library authors and toolchain teams without a firm target to build against. Beyond scheduling, Fertig frames the failed ballot as institutional damage: an ISO standard is a bundle of compromises, and in his view the losing side of the contracts argument declined to accept its loss, shaking the trust that consensus-driven standardization depends on. The only comparable failure he could find, C++/CLI in 2006, ended with the project halted. Whether C++26 shares that fate, returns for another vote, or emerges as a Technical Specification should become clearer after the November 16 meeting.
- #cpp
- #iso
- #standards
- #programming-languages
- #contracts