Le comité ISO C++ a achevé les travaux techniques sur C++26 à Londres Croydon, au Royaume-Uni. Les derniers commentaires internationaux sur le brouillon ont été résolus, et le document final sera soumis au vote international (DIS) avant publication officielle par l'ISO. Cette version majeure ajoute de nombreuses nouvelles fonctionnalités au langage et apporte des améliorations en matière de sécurité mémoire. Elle a toutefois suscité quelques réserves de la part des critiques qui voulaient doter C++ d'un modèle de sécurité inspiré de Rust. Pour le secrétaire du comité Herb Sutter, cependant, C++26 est la version la plus aboutie depuis C++11. C++26 est le nom informel donné à la version de la norme 14882 de l'Organisation internationale de normalisation (ISO) et de la Commission électrotechnique internationale (CEI) relative au langage de programmation C++ qui succède à la version C++23. C++26 a été officiellement finalisé le 28 mars 2026 par le comité international chargé de la normalisation (WG21) du langage. Le comité a également annoncé avoir adopté le calendrier de C++29.
Herb Sutter : C++26 est la version la plus importante depuis C++11
La réunion à Londres Croydon, au Royaume-Uni, était la dernière consacrée aux travaux techniques sur C++26 ; aucune fonctionnalité n'a été ajoutée ni retirée, l'essentiel du travail portant sur le traitement des 411 commentaires reçus lors du vote international précédent. Selon Herb Sutter, secrétaire du comité de standardisation du langage, « C++26 est la version la plus marquante depuis C++11 ». Elle s'articule autour de quatre grandes nouveautés.
La réflexion (Reflection) : une révolution pour le langage C++
La réflexion est décrite comme la plus grande avancée pour le développement C++ depuis l'invention des templates. Elle permet pour la première fois au langage C++ de s'autodécrire, offrant aux développeurs les clés pour accéder à la machinerie interne du code afin d'analyser et de manipuler les entités du programme directement au moment de la compilation. Cette fonctionnalité vise également à augmenter la productivité des programmeurs C++.
Elle permet de générer du code à la compilation, ouvrant la voie à des abstractions efficaces d'une puissance inédite. Ce moteur de réflexion est perçu comme un outil de puissance inédite, et il est prévu qu'il faille une décennie entière à la communauté pour en explorer tout le potentiel technologique.
« Les premières fonctionnalités de réflexion à la compilation incluses dans le projet C++26 marquent le tournant le plus transformateur de l’histoire de notre langage en nous offrant le nouveau moteur le plus puissant dont le C++ ait jamais disposé pour exprimer des abstractions efficaces, et il nous faudra la prochaine décennie pour découvrir tout ce dont cette fusée est capable », a déclaré Herb Sutter. En bref, cette réflexion C++ moderne permet :
- l'inspection des types, membres, fonctions et annotations ;
- la génération de code C++ automatique à la compilation ;
- un métaprogrammation compile-time (compile-time metaprogramming) expressive, sans macros.
La norme C++26 apporte la sécurité mémoire au langage
C++26 introduit des améliorations importantes en matière de sécurité mémoire, accessibles sans modification du code existant, simplement en recompilant en C++26. L'avancée la plus notable est la suppression complète des comportements indéfinis liés à la lecture de variables locales non initialisées, une source historique majeure de vulnérabilités logicielles. Toute cette catégorie de vulnérabilités disparaît après que vous avez recompilé en C++26.
En complément, cette nouvelle version introduit un durcissement de la bibliothèque standard qui impose des vérifications de limites (bounds safety) pour les conteneurs les plus utilisés comme vector, string, span, etc. Ces mesures, déjà testées à grande échelle par des géants tels que Google et Apple, ont prouvé leur efficacité en réduisant drastiquement les bogues et les plantages en production avec un impact minimal sur les performances du code.
Selon un long compte rendu publié par Herb Sutter le 29 mars, chez Google, ce durcissement de la bibliothèque standard a déjà corrigé plus de 1 000 bogues, devrait en prévenir entre 1 000 et 2 000 par...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.