Pull to refresh
Logo
National bodies reject C++26 draft in first failed ballot

National bodies reject C++26 draft in first failed ballot

Rule Changes

The contracts feature split the committee and sparked the first no-vote in C++ standards history

Today: Disapproval of C++26 ballot reported

Overview

Updated 1 hour ago

The international ballot for C++26 came back No. National bodies to ISO rejected the draft standard, the first rejection in the history of C++ standardization. The point of contention: the contracts feature, added last March despite opposition from C++ creator Bjarne Stroustrup.

The 12-week ballot closed October 22; reports of the disapproval surfaced October 24. WG21, the committee that wrote C++26, had approved the draft 114-12-3 with contracts included. It now faces three paths: pull contracts, resubmit the draft unchanged, or watch the project die against ISO's 36-month deadline.

Why it matters

A failed C++26 ballot could slip the next ISO C++ standard past 2027 or kill the contracts feature the committee fought to keep.

Questions about this story

Free account needed to ask — your question is kept and asked for you right after sign-up. Answers are public.

No questions yet — be the first to ask.

Key Indicators

114
WG21 votes in favor of sending C++26 to ballot
March plenary vote in Croydon; 12 opposed, 3 abstained.
28
P-member national bodies voting in the ballot
Approval needs a two-thirds P-member majority and no more than one-quarter negative votes.
12 weeks
Length of the enquiry ballot period
Ended October 22, 2026; the result was disapproval.

Voices

Curated perspectives — historical figures and your fellow readers.

Ever wondered what historical figures would say about today's headlines?

Sign up to generate historical perspectives on this story.

People Involved

Organizations Involved

Timeline

March 2026 October 2026

6 events Latest: Today
Tap a bar to jump to that date
  1. Disapproval of C++26 ballot reported

    Today Revelation

    Lobsters reports national bodies turned down C++26, calling the result unprecedented for the language.

  2. Berne proposes resubmitting C++26 as-is

    Proposal

    P4388R0 argues national body objections lack new information and the draft should ship with only a minor fix.

  3. C++26 ballot period closes

    Procedural

    Twelve-week vote ends. Reports later confirm the draft failed to meet approval criteria.

  4. No-vote campaign publicly underway

    Revelation

    The Shape of Code notes people in national bodies are canvassing for no votes, with contracts as the sticking point.

  5. ISO circulates C++26 draft to national bodies

    Procedural

    The draft enters the enquiry stage with a 12-week ballot window ending October 22.

  6. WG21 approves C++26 with contracts

    Vote

    Committee votes 114-12-3 to finalize the draft and send it to international ballot. Contracts stay in.

Scenarios

1

WG21 pulls contracts, C++26 ships without them

Possible Resolves by Q3 2027

Discussed by: National bodies that voted no; C++ Alliance petition signatories (Falco, Spicer, Garcia, Voutilainen)

National body comments cite contracts as the blocker. WG21 convenes, removes or defers contracts to a Technical Specification, and resubmits a revised draft for an eight-week enquiry ballot. The revised draft passes, and C++26 publishes in 2027 with a stripped feature set.

2

C++26 ships with contracts intact

Possible Resolves by End of 2027

Discussed by: Joshua Berne (P4388R0); WG21's stated consensus position

The committee treats the national body objections as a rehash of settled debates. WG21 advises SC22 to resubmit the same DIS with only a minor defect-report fix (CWG2228). The second ballot passes, and ISO publishes C++26 including contracts by late 2027.

3

C++26 stalls; ISO auto-cancellation looms

Unlikely Resolves by Jan 31, 2028

Discussed by: P4388R0's own warning about the 36-month work-item limit

The dispute deadlocks. National bodies demand contracts removal; the committee refuses. A second ballot fails, and the project hits ISO's 36-month work-item limit around January 2028 without reaching the approval stage. ISO either grants a 12-month extension or cancels the project, pushing C++ to a late C++29 or longer.

Historical Context

2 moments from history that rhyme with this story — and how they unfolded.

2008-2011

C++0x becomes C++11 (2008-2011)

The standard planned after C++03 was nicknamed C++0x on the assumption it would ship by 2008 or 2009. Feature debates and review delays pushed publication to August 2011, forcing a name change to C++11.

Then

Three years of schedule slip and a renamed standard.

Now

Established that C++ standards can slip badly when ambitious features stall; the modern three-year cadence began only with C++14.

Why this matters now

C++26 rejection threatens a similar or worse slip. If the draft cannot be approved, the project faces ISO's 36-month work-item cancellation in early 2028.

2017-2019

Contracts pulled from C++20 (2019)

Contracts were proposed for C++20 and generated intense debate about syntax, semantics, and safety. The committee removed them from the draft before publication so C++20 could proceed on schedule.

Then

C++20 shipped on time without contracts.

Now

Contracts became a recurring fight; the feature was redesigned and re-proposed for C++26.

Why this matters now

Removing contracts worked once, in 2019, to unblock a standard. This time the committee voted to keep them, and that decision is now blocking ratification.

Sources

(9)