La prochaine version du langage de programmation C++, la 23ème du nom, doit être finalisée en 2023. Elle s’accompagnera de certaines évolutions comme une meilleure prise en charge de la bibliothèque standard et d’une compilation plus rapide. Cette actualisation va inclure un module de bibliothèque standard, appelé std, et une certaine prise en charge des coroutines, a déclaré le concepteur du langage, Bjarne Stroustrup. Ainsi, le module de la bibliothèque standard pour « Hello World » devient :

import std :

int main()

{

Std::cout<< "Hello, World!\n" ;

}

Cette approche compilera 10 fois plus que l’ancienne version utilisant #include, a déclaré Bjarne Stroustrup.

Les modules améliorent non seulement la vitesse de compilation et l'hygiène du code, mais aussi unifient l'organisation des sources des fonctions ordinaires et des modèles, a noté Bjarne Stroustrup. La distinction .h/.cpp disparaît et le code source C++ est fondamentalement simplifié. « À terme, les modules constitueront l'amélioration la plus significative jamais apportée à la manière dont nous organisons notre code », a-t-il déclaré.

Un travail perturbé par la pandémie

C++ 23, qui est en cours de développement sous l'égide de l'ISO (Organisation internationale de normalisation), comportera de nombreuses améliorations mineures, dont certaines ne sembleront pas si mineures, a déclaré M. Stroustrup. Il a fait remarquer qu'il ne s'agissait pas d'une mise à niveau majeure de C++ comme l'ont été C++ 11 et C++ 20 (qui avait justement intégré les modules). Il s'agissait plutôt de compléter C++ 20 et, avec un peu de chance, d'apporter quelques fonctionnalités importantes.

Cependant, la pandémie a imposé une limite aux ambitions. « Il a été difficile de tenir de bonnes discussions sur la conception de manière virtuelle, et beaucoup de gens pensent que le manque de contact en face à face a été un grand handicap », a déclaré Bjarne Stroustrup. En conséquence, des fonctionnalités telles que le filtrage, les contrats et un modèle général pour la concurrence (exécuteurs) devront attendre C++ 26.