Historisches ISO-Veto gegen C++26: Entwurf scheitert an 60 Prozent Zustimmung

Historisches ISO-Veto gegen C++26: Entwurf scheitert an 60 Prozent Zustimmung

C++C++26ISOProgrammiersprachenStandardisierung

Quellen:HN + ISO/WG21 Papers

“Balloting has completed for C++26. Unfortunately it was Disapproved.”

Am 24. Oktober 2026 veröffentlichte Robert Seacord, Convener des ISO-C-Sprachkomitees, diese historische Mitteilung. Er betonte, dass in der gesamten Geschichte von SC22 noch nie ein internationaler Sprachstandard in einer Abstimmung abgelehnt worden sei. Daveed Vandevoorde, Mitglied der WG21 Direction Group, formulierte es noch deutlicher: Bis zu diesem Votum hatte kein einziger C++-Entwurf auf DIS-Stufe (Draft International Standard) auch nur eine einzige Gegenstimme erhalten. Diese dreißigjährige Serie von null Gegenstimmen endete am 23. Oktober 2026.

Das Scheitern von C++26 im DIS-Ballot ist im Kern eine Vertrauenskrise des Standardisierungsprozesses. Ein umstrittenes Sprachfeature war intern mit Mehrheit beschlossen worden. Die Opposition verlagerte das Schlachtfeld daraufhin auf die nationalen Normungsorganisationen (National Bodies). Dieses Manöver brachte nicht nur den Drei-Jahres-Zyklus durcheinander, sondern beschädigte das Fundament des technischen Konsenses nachhaltig.

Nur 60 Prozent Zustimmung: Das Ende einer 30-jährigen Serie einstimmiger Voten

Eine DIS-Abstimmung bei der ISO muss zwei Bedingungen gleichzeitig erfüllen: Mindestens zwei Drittel (66,7 %) der teilnehmenden Mitgliedsländer müssen zustimmen, und der Anteil der Gegenstimmen darf 25 % aller abgegebenen Stimmen nicht überschreiten. Wird eine dieser Hürden verfehlt, gilt der Entwurf als abgelehnt.

Das Endergebnis brachte einen doppelten Dämpfer. Von 20 teilnehmenden Mitgliedsstaaten stimmten lediglich 12 mit Ja – eine Zustimmungsquote von exakt 60 % (zwei Stimmen unter der erforderlichen Zweidrittelmehrheit). Gleichzeitig entfielen von den 22 abgegebenen Stimmen 9 auf Nein, was einem Anteil von 41 % entspricht – fast das Doppelte der erlaubten 25-Prozent-Grenze.

Das gleichzeitige Verfehlen der Zustimmungsmarke und das massive Überschreiten der Obergrenze für Gegenstimmen offenbarten einen tiefen Riss zwischen den Delegationen. Drei Jahrzehnte makelloser Zustimmungen ohne jede Gegenstimme auf DIS-Ebene gehören damit der Vergangenheit an.

Streit um Contracts eskaliert: Vom Fachdiskurs zum politischen Lobbying

Der Auslöser dieses Bruchs ist die Einführung von Contracts (Vertragsprogrammierung). Die Sprachfunktion umfasst die Kernsyntax rund um pre, post und contract_assert. Ziel war es, Vor- und Nachbedingungen direkt auf Sprachebene zu verankern, um Softwaresicherheit und formale Verifizierbarkeit signifikant zu verbessern.

Der Standardisierungsweg dieser Erweiterung verlief extrem holprig. Bereits auf dem Treffen in Köln 2019 war ein früherer Entwurf aufgrund unüberbrückbarer Differenzen kurzfristig zurückgezogen worden. Eine eigens gegründete Arbeitsgruppe verbrachte Jahre mit einer Neukonzeption. Im März 2026 verabschiedete WG21 schließlich den überarbeiteten Entwurf P2900 per Mehrheitsentscheid.

Doch eine Mehrheitsentscheidung bedeutet in ISO-Gremien noch keinen echten technischen Konsens. Kritiker hielten den Entwurf für unausgereift, monierten den Umgang mit undefiniertem Verhalten (Undefined Behavior) und das Fehlen großflächiger Praxiserprobung. Das Papier P4433R0 wies diese Einwände Punkt für Punkt zurück und warnte, ein Rückzug würde sechs Jahre intensiver Entwicklungsarbeit vernichten.

Duell der Papiere: P4238 und P4433 legen Governance-Krise offen

Die Auseinandersetzung sprengte schließlich die internen Beratungen des Komitees und entwickelte sich zu einer offenen Lobbykampagne. Am 1. September 2026 veröffentlichten Vinnie Falco und drei weitere erfahrene Komiteemitglieder das Papier P4238R1 unter dem unmissverständlichen Titel: Returning C++26 for the Evaluation It Skipped.

Titelseite des WG21-Papiers P4238R1 Abbildung: Titelseite des WG21-Papiers P4238R1, in dem nationale Gremien zum Veto gegen den C++26 DIS aufgerufen werden. Quelle: WG21 (open-std.org)

P4238R1 verließ den üblichen Rahmen technischer Debatten. Die Autoren wandten sich direkt an die nationalen Delegationen (NBs) und riefen sie unverhohlen dazu auf, mit Nein zu stimmen. Dieselbe Gruppe lancierte auch P4334R0 und sammelte Unterschriften für eine Petition, die grundlegende Mängel im Contracts-Design anprangerte.

Die Gegenreaktion der Befürworter folgte auf dem Fuß. Mehr als ein Dutzend führender WG21-Mitglieder, darunter Timur Doumler und John Lakos, reichten P4433R0 ein: Do not remove Contracts from C++26.

Titelseite des WG21-Papiers P4433R0 Abbildung: Titelseite des WG21-Papiers P4433R0, in dem Kernautoren die Streichung von Contracts aus dem Entwurf ablehnen. Quelle: WG21 (open-std.org)

P4433R0 entkräftete die technischen Vorwürfe detailliert. Die Unterzeichner warfen der Minderheit vor, demokratische Beschlüsse innerhalb von WG21 nicht zu akzeptieren und stattdessen nationale Gremien für ein Vetomanöver zu instrumentalisieren. Der deutsche Vertreter Andreas Fertig bezeichnete das Abstimmungsergebnis als Desaster. Die Gegner hätten lediglich altbekannte Argumente wiederholt. Der eigentliche Schaden treffe das Regelsystem, auf dem die Arbeitsfähigkeit des Komitees basiere.

Hinter den 9 Gegenstimmen: Schwächen im Stimmrecht kleiner Länderkomitees

Nach ISO-Regularien sind die detaillierten Abstimmungsergebnisse der einzelnen Mitgliedsländer vertraulich. Inoffizielle Aufstellungen deuten jedoch darauf hin, dass unter anderem Dänemark, Spanien, Italien, Japan und Schweden mit Nein gestimmt haben. Dieses Bekanntwerden rückte die Funktionsweise nationaler Vertretungen in den Fokus.

Ein Mitglied des polnischen Nationalkomitees beschrieb die teils ernüchternde Realität lokaler Gremien. Wenige Tage vor Fristende bemühte man sich mühsam um ein Quorum. Manche eingetragenen Mitglieder hatten den Arbeitgeber gewechselt, E-Mails kamen als unzustellbar zurück, und ihre tatsächliche Beteiligung an laufenden C++-Themen war minimal.

Nach ISO-Regeln besitzt jedes Land genau eine Stimme. Verlagert sich ein Streit aus den WG21-Arbeitsgruppen in externe nationale Abstimmungen, ist die Beeinflussung kleiner Komitees mit wenigen Teilnehmern ungleich einfacher als das Überzeugen hunderter Fachexperten auf dem internationalen Plenum. Diese Asymmetrie verschaffte der organisierten Opposition enormen Hebel.

Vier Optionen für die Zukunft: Compiler arbeiten weiter, aber Vertrauen ist zerstört

Angesichts des erstmaligen Scheiterns eines DIS-Entwurfs stehen WG21 nach ISO-Verfahren vier Wege offen: Überarbeitung des Entwurfs und Einleitung einer zweiten DIS-Runde, Zurückstufung auf den Status eines Committee Drafts (CD), Ausgliederung von Contracts in eine separate Technical Specification (TS) oder der vollständige Abbruch des Vorhabens.

J. Daniel Garcia, Mitautor von P4238R1, skizzierte in einer Antwort auf Seacords Beitrag den pragmatischsten Ausweg: Entfernt man das eine umstrittene Feature, wird der Rest des Standards problemlos passieren. Auch Daveed Vandevoorde neigt dazu, Contracts aus C++26 zu streichen und lediglich Maßnahmen zur Härtung der Standardbibliothek beizubehalten. Zwar keine technisch optimale Lösung, aber der realistischste Kompromiss.

Die nationalen Gremien haben nun ein 12-wöchiges Zeitfenster bis Mitte Januar 2027, um formelle Kommentare einzureichen. Am 16. November 2026 tritt WG21 im brasilianischen Búzios zusammen. Vandevoorde bezweifelt, dass vor Jahresende 2026 nochmals abgestimmt werden kann; verschiebt sich der Prozess nach 2027, sei „die Bezeichnung C++27 treffender“. Bis zur Veröffentlichung einer Neufassung bleibt ISO/IEC 14882:2024 (C++23) der verbindliche Standard. Die Arbeit am C++29-Fahrplan musste vorerst ausgesetzt werden, um diese Krise zu bewältigen.

Führende Compiler-Hersteller setzen die Implementierung bereits beschlossener Features fort; bestehender Produktivcode ist kurzfristig nicht betroffen. Doch der Veröffentlichungszeitplan von C++26 ist ins Wanken geraten. Softwarearchitekten können Contracts für Systementwürfe vorerst nicht als gesichert betrachten.

Die tieferliegende Krise betrifft das Vertrauen in die Selbstverwaltung des Gremiums. Wenn intern mühsam ausgehandelte Mehrheitsbeschlüsse extern durch gezieltes Lobbying ausgehebelt werden können, verliert technischer Konsens seine Bindekraft. Vertragstexte lassen sich binnen Monaten anpassen – das Vertrauen in die Spielregeln wiederherzustellen, dürfte die Community noch Jahre kosten.

Weiterführende Links:

  • Andreas Fertigs Blogbeitrag: C++26 DIS failed, how does C++ survive?
  • WG21-Papier P4238R1: Returning C++26 for the Evaluation It Skipped
  • WG21-Papier P4433R0: Do not remove Contracts from C++26
  • WG21-Papier P4334R0 und zugehörige Antragsdebatten
  • Robert Seacords öffentliche Bekanntmachung des C++26-Abstimmungsergebnisses