Contexte du vote DIS

Le 23 octobre 2026, le comité ISO a publié le résultat du vote DIS (Draft International Standard) pour C++26 : le projet a été disapprouvé. Le processus ISO exige une majorité des deux‑tiers parmi les National Bodies (NBs). Après douze semaines de scrutin, cette majorité n’a pas été atteinte, marquant la première fois qu’un DIS de C++ échoue depuis 1998. Les règles ISO précisent que les détails du vote restent confidentiels, ce qui empêche de connaître la répartition exacte des « no ».

Rôle et controverse des contracts

Le point de friction principal était l’inclusion des contracts, une fonctionnalité de vérification de pré‑et post‑conditions introduite dans les discussions de C++20, retirée, puis étudiée par un groupe de travail de 2020 à 2024. Ce groupe a transmis ses propositions à l’Evolution Working Group (EWG), qui les a défendues jusqu’à leur adoption par le WG21 en mars 2026 avec une large majorité. Malgré ce soutien interne, plusieurs NBs ont estimé que les contracts n’étaient pas encore prêts pour une standardisation, invoquant des problèmes d’interopérabilité et de maturité de l’implémentation. Cette divergence montre comment une décision technique, même approuvée à plusieurs étapes, peut être remise en cause lorsqu’elle touche à la stabilité du code existant.

Scénarios post‑rejet et implications pour le langage

ISO propose quatre voies : soumettre un nouveau DIS révisé, renvoyer le texte au comité pour la phase CD, publier une spécification technique ou annuler le projet. Toutes nécessitent un nouveau consensus au sein du WG21, qui avait déjà validé C++26 avec les contracts. Un nouveau DIS retarderait la sortie prévue, tandis qu’une publication en tant que Technical Specification placerait les contracts en dehors du standard officiel, compliquant leur adoption par les compilateurs. L’annulation du projet impliquerait de revenir à C++23 et de reporter les améliorations prévues à C++29, ce qui obligerait chaque fonctionnalité à être re‑déposée individuellement, augmentant le risque d’abandon.

Analyse des risques pour l’écosystème C++

Le rejet du DIS fragilise la confiance entre les NBs et le WG21, un facteur essentiel à la gouvernance du langage. Un retard prolongé pourrait freiner les initiatives des fournisseurs de compilateurs qui ont déjà intégré les contracts dans leurs branches de développement, entraînant une fragmentation entre implémentations « pré‑standard » et versions officielles. De plus, les bibliothèques tierces qui planifiaient d’exploiter les contracts devront soit rester en mode expérimental, soit attendre une future version, ce qui ralentit l’évolution des API sécurisées. Enfin, l’incertitude autour de C++26 risque de décourager les contributeurs externes, car le processus de validation apparaît moins prévisible, ce qui pourrait réduire le flux de propositions innovantes pour les futures itérations du langage.