Spokes.wiki Search About
Blog Posting T3 stable source ↗ source url
Published
Created
Updated
Also known as
C++26 is done · Croydon trip report · March 2026 WG21 meeting

"C++26 is done" — WG21 trip report, London Croydon, March 2026

Herb Sutter's report on the ISO C++ meeting that closed technical work on C++26, 28 March 2026. Read via Firecrawl (the site 403s a plain fetch).

T3 — a committee insider's own account of a meeting he chairs sessions at, on his personal blog, with no minutes or ballot record attached. It is first-party for what the committee decided, which is what this page cites it for; where it reports figures from other work (the Google and Apple rollout numbers) those are relayed and belong to cpp-library-hardening.

What was decided

Six days, about 210 attendees (130 in person, 80 remote) from 24 nations, resolving the last of 411 national-body comments. No features added or removed. The four headline features: compile-time reflection, memory-safety improvements, contracts, and std::execution.

Safety in C++26 is two things, and neither is profiles. Reading an uninitialized local variable is no longer undefined behaviour, and the hardened standard library (cpp-library-hardening) is standardised — both of which arrive "just by recompiling your existing C++ code with no changes."

Profiles were deferred to C++29. The committee adopted a C++29 schedule with further memory safety as a major focus; SG23 worked on Stroustrup's P3984 type-safety profile over a general profiles framework by Gabriel Dos Reis, targeting C++29. A Friday session on memory safety drew about 90 experts, and Apple's P4158 reported hardening roughly 4 million lines of WebKit with a subset-of-superset approach.

The governance material is the reason this page exists

language-governance has been arguing from cpp-hopl's description of consensus without ever seeing a vote. Here are two, on the same feature:

  • February 2025, adopting contracts into the working draft: 100 in favour, 14 opposed, 12 abstaining.
  • March 2026, shipping C++26: 114 in favour, 12 opposed, 3 abstaining — non-unanimous "primarily because of the sustained concerns about contracts."

Sutter reads the collapse in abstentions as everyone having made up their mind after three meetings of rediscussion. Read against cpp-hopl, the sequence shows the mechanism from the other side: a consensus committee can ship over a durable minority objection, and what it cannot do is impose a migration cost. Contracts are additive; profiles would change what existing code compiles to. The feature that shipped is the one that costs nobody anything, and the one deferred is the one that does — three years, and counting, after it was proposed for C++26.

Caveats

  • One participant's account, self-published, no minutes cited. The vote counts and the deferral are the load-bearing claims here and they are the kind an insider is reliable for; the editorial framing ("the most compelling release since C++11", predictions about adoption speed) is opinion from someone who authored two of the four headline features.
  • The standard was not yet published at the time of writing — the draft was going out for its DIS ballot. "C++26 is done" means technical work, not ISO publication.

cpp · cpp-hopl · cpp-safety-profiles · cpp-library-hardening · language-governance