C ++ 20 reçoit l'approbation technique finale

Ayant obtenu l'approbation technique finale de l'ISO le 4 septembre, C ++ 20 devrait être officiellement publié vers la fin de cette année, introduisant de nouvelles fonctionnalités telles que des modules et des coroutines.

Conçu en 1979 pour la programmation de systèmes, C ++ reste un langage essentiel. C ++ s'est même révélé être le langage à la croissance la plus rapide dans l'indice Tiobe de septembre 2020, où il se classe à la quatrième place derrière C, Java et Python. Tiobe cite la spécification C ++ 20 comme l'un des facteurs qui donnent un coup de pouce au langage.

Les nouvelles fonctionnalités de C ++ 20 incluent:

  • Modules, permettant aux programmeurs d'utiliser des composants modulaires.
  • Concepts, utilisés pour spécifier les exigences du modèle et prendre en charge la programmation générique. Les concepts promettent d'améliorer la qualité du code.
  • Une bibliothèque de synchronisation, pour une meilleure prise en charge du contrôle matériel fin
  • Améliorations du calcul au moment de la compilation.
  • Coroutines, qui généralisent les sous-programmes à utiliser dans le multitâche non préventif. Cependant, la prise en charge standardisée des coroutines dans la bibliothèque standard fait toujours défaut. Ce support est prévu pour C ++ 23.
  • Ranges, qui fournissent des composants pour traiter des plages d'éléments.
  • Macros de test de fonctionnalités, un ensemble de macros qui correspondent aux fonctionnalités de langage et de bibliothèque de C ++ 11 ou version ultérieure.
  • Valeurs de hachage précalculées dans la recherche.
  • Instructions d'extension pour permettre la répétition à la compilation d'une instruction pour chaque élément d'un tuple, d'un tableau, d'une classe, d'un pack de paramètres ou d'une plage.
  • Opérations monadiques pour std::optionalcode.
  • Création implicite d'objets pour une manipulation de bas niveau.
  • Amélioration de la reconnaissance contextuelle importet modulepour aider les outils non compilateurs à déterminer les dépendances de construction.
  • Nouveaux algorithmes étendus.

Une capacité de contrats qui était attendue dans C ++ 20, pour spécifier des pré-conditions, des post-conditions et des assertions, a été supprimée. Les contrats sont désormais marqués comme un élément C ++ 23, bien qu'il ne puisse pas non plus être intégré à cette version.