Thème d'affichage

C++26 est officiellement finalisé : la plus grosse mise à jour du langage depuis C++11

Nicolas Lecointre · 31 Mar 2026 à 08h16
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.

Le comité ISO de C++26

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.

Des oreilles de chat

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 ?

Meme confused Travolta

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 !

Partager
Sujets :

À propos de l'auteur

Nicolas Lecointre

Nicolas Lecointre

Chief Happiness Officer des développeurs, ceinture noire de sudo. Pour rire, j'ai créé Les Joies du Code. J'utilise Vim depuis 10 ans parce que je sais pas comment le quitter.

Voir sa page auteur

À lire également

Articles similaires