Feuille de route du développement de C++ pour 2025-2026 : qu'attend les développeurs ?
Le comité de normalisation de C++ (ISO/IEC JTC1/SC22/WG21) poursuit activement ses travaux sur la prochaine version du langage — C++26, dont la sortie est prévue pour 2025-2026. Bien que C++23 n'ait pas encore été largement adopté, les développeurs peuvent déjà jeter un coup d'œil vers l'avenir : les premières ébauches et propositions qui entreront dans la nouvelle norme ont été publiées. Dans cet article, nous avons rassemblé les principales orientations de développement qui modifieront le paysage de C++ au cours des deux prochaines années.
Principales innovations de C++26
C++26 devrait devenir l'une des mises à jour les plus significatives de ces dernières années. L'accent est mis sur les performances, la sécurité de la mémoire et la facilité de développement.
- Extension des capacités de constexpr : Il est prévu d'ajouter la prise en charge de l'allocation dynamique de mémoire dans les expressions constantes, permettant d'effectuer davantage d'opérations au moment de la compilation.
- Amélioration des modules : Les modules, introduits en C++20, bénéficieront d'une prise en charge tant attendue des macros et d'une intégration plus étroite avec les fichiers d'en-tête.
- Bibliothèque standard pour le travail en réseau : Après de longues années de discussions, C++26 pourrait inclure
std::net— un ensemble de classes de base pour le travail asynchrone avec TCP/UDP. - Nouveaux modèles pour la gestion des erreurs : Des propositions ont été introduites pour
std::expected(déjà dans C++23) et unstd::outcomeamélioré pour une gestion plus sûre des exceptions.
Sécurité de la mémoire : le principal objectif de 2025-2026
L'un des sujets les plus brûlants dans la communauté C++ est la sécurité de la mémoire. En réponse aux exigences des organisations gouvernementales (par exemple, la NSA américaine recommande de passer à des langages memory-safe), le comité WG21 travaille activement sur des profils de sécurité :
- Profils de sécurité : Il est prévu d'introduire des ensembles de règles (par exemple,
profile::safe) qui désactivent les opérations dangereuses (pointeurs bruts, conversions implicites) au niveau du compilateur. - Smart pointers 2.0 : Amélioration de
std::shared_ptretstd::unique_ptrpour réduire les frais généraux dans les applications multithread. - Analyseur statique dans la norme : L'inclusion d'interfaces pour la vérification statique du code directement dans la bibliothèque standard est à l'étude.
Modèles et approches : qu'est-ce qui changera dans le code ?
Les nouvelles normes dictent toujours de nouveaux modèles de conception. En 2025-2026, on s'attend à la popularisation des approches suivantes :
- Value semantics (sémantique des valeurs) : Au lieu de l'héritage et des fonctions virtuelles — préférence pour la composition,
std::variantetstd::visit. - Programmation asynchrone sans callbacks : Avec l'apparition de
std::netet des coroutines améliorées (C++20), on s'attend à une migration massive vers des chaînes d'appels asynchrones. - Pattern matching (correspondance de motifs) : Bien que son implémentation complète soit reportée à C++26, des bibliothèques d'émulation apparaissent déjà et la communauté teste activement la syntaxe.
Outillage et écosystème
Parallèlement au langage, les outils se développent également. Les principales tendances de 2025-2026 :
- CMake 4