Brifing

C++26 Standardization Fails ISO Ballot Over Contracts Feature

The C++26 draft faces an unprecedented rejection by ISO National Bodies, stalling language evolution.

Hacker News2 min

1Unprecedented Standard Rejection

On October 23, 2026, the C++26 draft failed its ISO National Body vote, marking a historic first for the language. Since 1998, the standardization process had proceeded smoothly without such a setback. This rejection prevents the draft from reaching the final stage, creating an immediate impasse for the entire C++ ecosystem.

2The Contracts Feature Conflict

The primary cause for the rejection is the inclusion of the Contracts feature. National Bodies argued that the feature is not ready for release, despite years of development. While WG21 previously approved the draft with a large majority, the National Bodies utilized their voting power to halt the current progress.

3Historical Context of Failure

This event is rare in ISO history, with only one previous instance of a programming language specification failing a DIS ballot: ISO/IEC DIS 26926 in 2006. That project was ultimately terminated. The current C++26 situation mirrors this gravity, as the committee must now navigate a path forward without clear consensus or precedent.

4WG21 Internal Voting Dynamics

The WG21 committee operates under specific ISO rules requiring a two-thirds majority for approval. Although the committee previously voted to include Contracts, the National Bodies' rejection overrides this internal momentum. This shift in voting behavior signals a departure from the traditional practice of respecting committee consensus unless significant new information emerges.

5Complex Path to Resolution

ISO procedures offer four distinct options to address the rejection, but all require a majority vote within WG21. Given that the committee previously supported the current draft, finding a new path is difficult. Any chosen direction will inevitably delay the release of the next standard, regardless of its final name.

6Risk of Feature Loss

If the committee decides to remove Contracts to appease the opposition, it risks losing other features already successfully integrated into C++26. Reverting to C++23 and restarting the process for C++29 would require individual proponents to re-submit every feature. This creates a significant administrative burden and risks losing valuable technical contributions.

7Impending Committee Deadlock

The future of C++ remains uncertain as the committee prepares for a meeting on November 16. The primary goal is to break the current deadlock, which currently threatens the viability of the C++29 roadmap. Without a resolution, the committee lacks a clear mandate to continue development on the current language trajectory.

8Erosion of Professional Trust

The rejection represents a breakdown in the trust and respectful collaboration that historically defined the C++ standardization process. By refusing to accept the majority outcome, the dissenting bodies have shaken the foundation of the committee. Rebuilding this trust is now more critical than any technical resolution for the language's future.

Original article: Hacker News — C++26 Standardization Fails ISO Ballot Over Contracts Feature