C++26 est officiellement finalisé : la plus grosse mise à jour du langage depuis C++11
Le comité ISO C++ vient de boucler C++26 lors de sa réunion de Londres samedi dernier.
Et selon Herb Sutter, président de la Standard C++ Foundation et ancien président du comité ISO C++, c'est tout simplement la release la plus convaincante depuis C++11 (rien que ça !).
Comment sort une nouvelle version de C++ ?
Avant de plonger dans les nouveautés, un petit détour utile. Parce que C++ n'est pas un simple framework shipé sur GitHub avec un npm publish et un changelog, mais un standard international ISO, piloté par un comité appelé WG21 qui rassemble des centaines d'experts dans plus de 20 pays.
Depuis C++11, la version qui a modernisé le langage en profondeur en 2011, le langage suit un cycle d'évolution de trois ans. Les fonctionnalités qui sont prêtes à temps intègrent le standard, les autres patientent pour la version suivante (eh ouais, faut pas louper le train).
Concrètement, le comité se réunit trois fois par an pour discuter et voter des propositions. À un moment donné, les fonctionnalités sont “gelées" (pour C++26, c'était en juin 2025). Les pays membres envoient ensuite leurs commentaires via leurs organismes nationaux de normalisation, le comité les traite, et le document final part en vote international pour devenir un standard ISO.

C++26 en est là : les 411 commentaires nationaux ont été résolus à Londres (environ 210 participants sur une semaine, dont 130 sur place), le Draft International Standard va partir en vote d'approbation, et la publication officielle devrait suivre dans l'année.
L'opérateur oreilles de chat
La star de C++26, c'est la réflexion (reflection), considérée comme la plus grosse avancée pour le développement C++ depuis l'invention des templates.
Concrètement, la réflexion permet d'inspecter vos types (leurs champs, leurs fonctions) au moment de la compilation. Vous voulez générer automatiquement la sérialisation JSON de vos structs sans écrire des lignes de boilerplate ? C'est exactement ça. Même chose pour du logging de debug, de l'ORM, ou encore convertir automatiquement vos enums en strings.

Techniquement, ça passe par un nouvel opérateur ^^ (que la communauté a en toute logique surnommé le "cat-ears operator") qui produit une valeur de type std::meta::info, et un opérateur splice [: ... :] pour retransformer cette info en véritable code C++.
Autre ajout notable : les contracts, un système de préconditions, postconditions et assertions intégré au langage pour spécifier formellement ce qu'une fonction attend et garantit.
Sécurité mémoire : C++ fait ses devoirs
C++26 apporte également des améliorations concrètes du côté de la sécurité mémoire.
Lire une variable locale non initialisée, par exemple, n'est plus un undefined behavior mais un erroneous behavior, plus gérable. La bibliothèque standard durcie ajoute de la vérification de bornes sur std::vector, std::span et std::string.
Google a déjà déployé cette bibliothèque durcie sur des centaines de millions de lignes de code en production. Le coût en performance ? 0,3% de ralentissement, pour 30% de plantages mémoire en moins sur l'ensemble de leur parc. Apple a fait de même sur les 4 millions de lignes de WebKit.
Et le pattern matching ?

Parmi les autres ajouts notables, on trouve std::execution pour la concurrence structurée, la directive #embed pour inclure des données binaires directement dans le code, ou encore les placeholder variables sans nom (auto [x, _] = pair;).
Avec C++26, le langage C++ continue d'évoluer, même si l'écosystème traîne encore quelques boulets (les modules C++20 restent quasi inutilisés, et la gestion des paquets est toujours aussi pénible).
Bien que demandé par la communauté depuis des années, le pattern matching (la possibilité d'inspecter et déconstruire des valeurs directement, comme le font déjà Rust ou Kotlin) n'a pas eu son billet pour ce train. Rendez-vous en 2029, mon reuf !
À propos de l'auteur
Nicolas Lecointre
Fondateur des Joies du Code, je suis l'actualité et la culture des développeurs depuis 2012. Ancien développeur, je me consacre aujourd'hui entièrement au média.
Articles similaires
Java 26 : Oracle enterre les applets et embarque JavaScript et Python dans la JVM
TypeScript 6.0 est sorti : la dernière version en JavaScript avant le grand saut vers Go
Des neurones humains cultivés en laboratoire jouent à DOOM (oui, vraiment.)
Java 26 : Oracle enterre les applets et embarque JavaScript et Python dans la JVM
TypeScript 6.0 est sorti : la dernière version en JavaScript avant le grand saut vers Go
Des neurones humains cultivés en laboratoire jouent à DOOM (oui, vraiment.)
TypeScript devient le langage le plus utilisé sur GitHub
Plus de contenu
Quand je dois implémenter une API non documentée
Quand je lance un énième build et que ça marche toujours pas
Quand je résous un conflit de merge en gardant les deux versions au cas où
Quand je vois un console.log en prod et que je sais qu'il vient de moi
Quand je m'apprête à lancer un énorme update en base de prod
Quand le chef vient me demander si je peux prendre en charge une tâche supplémentaire
"Ah oui mais là je t'avoue que c'est quand même corsé comme truc"
Quand ma pull request est approuvée
Quand je dois implémenter une API non documentée
Quand je lance un énième build et que ça marche toujours pas
Quand je résous un conflit de merge en gardant les deux versions au cas où
Quand je vois un console.log en prod et que je sais qu'il vient de moi

