C++26 fails ISO ballot over contracts, committee member says

C++26 fails ISO ballot over contracts, committee member says

On October 23, 2026, the ISO National Bodies (NBs) voted on the C++26 draft standard in the DIS ballot, the penultimate stage of the ISO process, and the result was "Disapproved". Andreas Fertig, a member of the C++ Standardization Committee who, with colleagues, represents Germany's vote, reported it on his blog. A two-thirds majority is required at this stage, and it was not reached. The voting period lasted twelve weeks. Fertig says the vote was meant to be a formality and that the process had run quietly since 1998.

As far as he knows, this is the first time a DIS ballot has failed in the history of C++. Searching the ISO system, he found only one other DIS that was not approved: ISO/IEC DIS 26926, the C++/CLI Language Specification, dated August 11, 2006. That project was halted. He notes his search privileges may not show everything.

The reason is clear from the NBs' comments, he writes: contracts. Put simply, a number of NBs believe the feature is not yet ready for release. Fertig explains that WG21, the C++ committee, has its own rules on top of ISO's, including that opinions are heard whenever new information appears; once heard, a person accepts the outcome even if others disagree. Previous practice was that NBs voted against a standard only if new information emerged or errors in the process were found. He says that changed on October 23. The NBs who want C++26 without contracts argue there is new information; Fertig says he finds that hard to share, since a new paper with old arguments is not new information to him.

He retraces the history of contracts. He was in the room in Cologne in 2019 when contracts, in a different form, were added to C++20 and then removed again at the same meeting. A study group worked on the topic from 2020 to approximately 2024 and passed its proposals to the Evolution Working Group (EWG), the central body for language extensions. After several meetings, EWG included contracts in C++26 by majority vote. WG21 then voted on the C++26 draft in March 2026, with contracts included, and again won a large majority, though not without dissenting votes. At the DIS stage there were enough "no" votes to miss the two-thirds threshold.

ISO offers four options: submit a revised draft for a new DIS vote; submit a revised draft to the committee (the CD phase); publish a revised draft as a Technical Specification; or cancel the project. All of them delay the next C++ standard, and whether it will still be called C++26 is up in the air. Fertig calls that a much smaller issue.

The difficulty, he says, is that all four options need a majority within WG21, which earlier moved C++26 with contracts forward by more than the required two-thirds. Both camps have invested years of work, some in alternative implementations. He finds it hard to imagine the result changing without contracts being removed. Even cancelling C++26 would need a WG21 majority; as he understands it, that would mean reverting to C++23 and proceeding to C++29 without a single change. Features already accepted into C++26 would then have to be brought into C++29 through papers, each needing at least one person to champion it, so some could be dropped if that person lacks time or motivation.

He describes the way forward as more than uncertain and says the next C++ standard, and thus the future of C++, is at an impasse. The next WG21 meeting is on November 16, and breaking the deadlock will be the top priority. He says this will very likely affect C++29 as well; in fact, there is currently no reason to continue working on that project.

In a closing section of personal opinion, Fertig calls the rejected DIS a massive disaster and says he feels sorry for the entire C++ community. Whatever one thinks of contracts, he argues, the topic was worked on for years and won majority votes several times in its current form, and voting no shook a system built on trust and respectful collaboration. He says the losing parties refused to accept their loss, and that the key question now is whether the group can rebuild trust. He stresses that ISO rules keep certain votes internal, so results or breakdowns may not be published, and that the article contains only his own views.

Key facts

  • The ISO National Bodies' DIS ballot on C++26 ended on October 23, 2026 with the draft disapproved: the required two-thirds majority was not reached after a twelve-week voting period.
  • Andreas Fertig, a C++ committee member representing Germany's vote, says contracts were the reason: a number of NBs think the feature is not ready for release.
  • As far as he knows it is the first failed DIS ballot in C++ history; the only other non-approved DIS he found was C++/CLI (ISO/IEC DIS 26926, 2006), which was halted.
  • ISO offers four options: a new DIS vote, a revised draft back to the committee (CD phase), a Technical Specification, or cancelling the project. All delay the next standard, and each needs a majority in WG21.
  • The next WG21 meeting is on November 16; Fertig says the standard is at an impasse and calls the outcome a massive disaster.

Why it matters

Fertig says that since 1998 the ISO vote on a C++ standard had run quietly and smoothly, and that as far as he knows no C++ DIS ballot had ever failed. The only other non-approved DIS he found, for C++/CLI in 2006, ended with the project halted. So the result is both a delay to C++26 and a break with how the committee has worked: he says NBs previously voted against a standard only when new information emerged or process errors were found. He argues the real damage is to trust, which consensus depends on.

Who it affects

First, WG21 and the National Bodies, who must now find a majority for one of four ISO options. Second, the people who spent years on contracts, from the 2020 to approximately 2024 study group onward, and the group that opposes contracts and has in some cases built alternative implementations. Third, anyone waiting on C++26 features: Fertig says that if the whole standard were cancelled, accepted features would have to re-enter C++29 through papers, and some could be lost if no one champions them. He says the outcome will very likely affect C++29 too.

How to use it

There is nothing to install or adopt here; this is a standards-process story. What to follow is the WG21 meeting on November 16, where, per Fertig, the top priority will be to break the deadlock. The four paths to watch are a revised draft for a new DIS vote, a revised draft returned to the committee (CD phase), publication as a Technical Specification, or cancellation. All of them delay the next standard, and whether it keeps the name C++26 is open.

How solid is it

The account comes from one named committee member who represents Germany's vote, and he gives the date, the two-thirds threshold and the contracts reason. He says ISO rules keep certain votes internal, so the article does not give the vote tally; the breakdown may not be published. It also does not name which National Bodies voted against or say how Germany voted. It is his personal view, not an official statement of WG21, ISO or the German national body. His claim that this is the first failed C++ DIS is hedged: it is 'as far as I know', based on an ISO system search that may be limited by his privileges.

Risks and caveats

Nobody yet knows which option will be chosen, and no new release date is given. Fertig expects deadlock because WG21 earlier backed contracts by more than two-thirds, and the opposing group is also entrenched; he finds it hard to imagine a different result without contracts being removed. Cancelling would, as he understands it, mean reverting to C++23 and moving to C++29 with no changes. His framing is also one side of a dispute: he rejects the opponents' claim of new information and says the losing parties refused to accept their loss, while those NBs argue contracts are not ready. The article does not describe the technical weaknesses of contracts.

“The next C++ standard, and thus the future of C++, is currently at an impasse.”

— Andreas Fertig, member of the C++ Standardization Committee