C++26 Ballot Fails as Contracts Split Committee

The C++26 ISO ballot failed in October over the disputed Contracts feature, risking the standard's 2026 release.

@sharedot

C++26 Ballot Fails as Contracts Split Committee

By @sharedot · · 6 pages

  • Programming
  • C
  • Iso Standards
  • Contracts

The C++26 ISO ballot failed in October over the disputed Contracts feature, risking the standard's 2026 release.

A rare late stumble for the C++ standard

The Draft International Standard ballot for C++26 failed in October, with 13 votes in favor, 9 against and 12 abstentions — falling short of the ISO rule that negative votes not exceed 25 percent. The Register calls such a late ballot failure a rarity in C++ history.

The sticking point was Contracts, proposal P2900, which lets developers declare preconditions, postconditions and assertions that check program state. A similar Contracts attempt was yanked from C++20 over concerns about dangerous defaults.

Stroustrup versus the committee majority

Bjarne Stroustrup and colleagues, in a paper published in August, called P2900 an 'existential threat to C++,' citing complexity, bloat, limited testing, and arguing the checks could be delivered as a library instead.

Committee member Andreas Fertig pushed back, saying the topic had been worked on for years and approved multiple times, and that the losing parties had 'refused to accept their loss.'

Harry Bott, CEO of the C++ Alliance, countered that the draft being sent back is 'the process working as intended,' per The Register.

Safety pressure and the Rust shadow

The dispute lands amid ongoing criticism of how easily C++ developers can create security holes that have pushed projects toward Rust. Runtime checks can catch bugs that would otherwise lead to undefined behavior, but critics contend they add cost that conflicts with C++'s blazing-fast reputation.

LavX News notes the stakes extend to toolchain vendors and library authors, who need a stable contract for what compilers enforce and how checks affect debug and release binaries — uncertainty that now complicates planning for compiler updates.

Three paths in Búzios

WG21 meets next week in Búzios, Brazil, facing three options outlined by Thibault Ricord-Marchal of Paris consultancy Margo: carve Contracts out of C++26 entirely — messy, since library hardening work would need unwinding; move Contracts to a separate technical specification for further refinement; or make a minor revision and vote again.

If the 2026 window is missed, the release may informally be called C++27, formally ISO/IEC 14882:2027.

Sources

  1. theregister.com › C++26 stumbles at finish line over Contracts dispute
  2. news.lavx.hu › C++26 faces delay after Contracts dispute sinks ISO ballot

More on Programming