The Spectrum Dispatch News

technology

C++26 Standard Fails ISO Vote Over Contracts Feature Dispute

For the first time in C++ history, the language standard failed its crucial DIS ballot on Oct. 23, 2026, over disagreements about a proposed Contracts feature.

C++26 Standard Fails ISO Vote Over Contracts Feature Dispute

On October 23, 2026, the C++26 standard failed its Disapproved Ballot (DIS) vote by ISO National Bodies—a historic first for the C++ programming language. According to Andreas Fertig, a member of the C++ Standardization Committee, this marks only the second DIS failure in ISO programming language history, with the previous rejection being ISO/IEC DIS 26926 C++/CLI in 2006, which was ultimately halted.

C++26 Standard Fails ISO Vote Over Contracts Feature Dispute

The DIS stage is the penultimate phase before an ISO standard’s final approval, and requires a two-thirds majority vote. The rejection centered on a single feature: Contracts, a mechanism for specifying program behavior guarantees.

“The reason for the rejection is quite clear from the comments submitted by the National Bodies: contracts,” Fertig wrote. “Put simply, a number of NBs believe that this feature is not yet ready for release.”

Contracts have a long development history within C++. The feature was originally discussed for inclusion in C++20 at a meeting in Cologne in 2019, but was removed during that same meeting. A study group then spent approximately four years (2020–2024) refining the proposal before it was submitted to the Evolution Working Group. After further deliberation, Contracts were included in C++26 by majority vote and subsequently approved by WG21 in March 2026 with “a large majority,” Fertig noted.

The ISO process allows four possible paths forward: submit a revised DIS, revert to committee draft phase, publish as a Technical Specification, or cancel the project. However, each option requires a WG21 majority vote. This creates a procedural deadlock: the same working group that advanced C++26 with Contracts must now decide how to proceed, while the National Bodies that voted against it invested effort in alternative approaches.

“Consensus is needed to move forward. Trust is always required for consensus. Unfortunately, that trust has just been shaken,” Fertig stated.

The rejection represents a departure from established practice. Historically, National Bodies voted against ISO standards only when new information emerged or procedural errors occurred. On October 23, NBs voting against the standard argued new information supported their position, though Fertig expressed skepticism, describing the arguments as reiterations of previous concerns rather than genuinely new data.

The next C++ Standardization Committee meeting is scheduled for November 16, 2026. Fertig indicated the primary agenda will be resolving the deadlock, with implications extending to the C++29 standard timeline.

Key facts

  • C++26 failed its DIS ballot on October 23, 2026—the first such failure in C++ history
  • The vote failed to achieve the required two-thirds majority among ISO National Bodies
  • Contracts, a feature debated for years and approved by WG21, became the central point of contention
  • The rejection represents a procedural impasse: four possible paths forward all require WG21 approval
  • The next committee meeting on November 16, 2026 will attempt to resolve the deadlock

Sources

← All posts