C++20 est une version de la norme ISO / IEC définissant le langage de programmation C++. La norme a été techniquement finalisée par le WG21 lors de la réunion de Prague en , approuvée le , et publiée par l'ISO en .

Le dernier working draft gratuit est le N4861, qui date du , les seules différences avec le standard étant des corrections éditoriales.

Fonctionnalités C++20 ajoute plus de nouvelles fonctionnalités majeures que C++14 ou C++17. Les modifications qui ont été acceptées ou discutées pour inclusion dans C++20 incluent :

Langage

. Module. Initialiseurs nommés (basés sur la fonctionnalité C99). Capture de par les lambda. Extension de la syntaxe des aux lambdas génériques. Comparaison trilatérale à l'aide de l'opérateur "" : operator<=>. Initialisation de variables dans l'instruction . Lambdas dans des contextes non évalués. Lambdas sans état constructibles et assignables par défaut. autorisés dans la capture par les lambda. Utilisation des chaînes littérales comme paramètres de . facultatif dans certaines circonstances. Nouveaux attributs standard , et . conditionnel permettant au modificateur de dépendre d'une expression booléenne. Extension de aux fonctions virtuelles, , - , et , . Nouveau mot-clé imposant l'évaluation à la compilation d'une fonction. L'utilisation du complément à deux pour représenter les entiers signés devient obligatoire. Révision du modèle de mémoire. Diverses améliorations des : interaction avec la capture des lambda, durée de stockage statique et thread_local. coroutines. Extension de aux énumérations . Mot-clé impose l'initialisation constante d'une variable constante statique.

Bibliothèque

(). et sur les tableaux Pointeurs intelligents atomiques et . pour convertir un pointeur en pointeur brut. ajouts de calendriers et de fuseaux horaires à . fournissant une vue sur un tableau contigu (analogue à mais avec la possibilité de modifier la séquence référencée). et simplifiant l'effacement des éléments pour la plupart des conteneurs standard. Fichier d'en-tête . pour la conversion des représentations d'objets, moins verbeux que et capable d'exploiter les structures internes du compilateur. Macros de test de présence de fonctionnalités. Généralisation de dans la bibliothèque standard. Fonctions d'initialisation par défaut des pointeurs intelligents. Fonction . Opérations binaires : comptage du nombre de zéro ou de un, en début ou en fin de nombre, rotation de bit. Manipulation de puissance de 2. .

Ajouts et modifications de mots clés Ajout de nombreux nouveaux mots-clés : , , , , , , et (support d'UTF-8).

Ajout d'identifiants avec une signification particulière : et .

Publication de

Parallelism TS v2. Networking TS v1 Reflection TS v1

Reporté à une version ultérieure

Contrats : un nouveau groupe d'étude (SG21) a été formé pour travailler sur une nouvelle proposition Réflexion. Métaclasses. Exécuteurs. Gestion du réseau, y compris asynchrone, services d'entrée/sortie de base, temporisations, tampons et flux orientés tampon, sockets et protocoles Internet (bloqués par les exécuteurs). Propriétés. Futures étendus.

Fonctionnalités supprimées et dépréciées C++20 a également supprimé certaines fonctionnalités :

Les en-têtes dérivés du C , , , et ont été supprimés car inutiles en C++ (les en-tête restent, pour la compatibilité avec C. ). L'utilisation de comme spécification d'exception a été supprimée. Certaines fonctionnalités de bibliothèque précédemment dépréciées ont été supprimées, notamment , , , , et .

Les fonctionnalités dépréciées incluent :

L'utilisation de l'opérateur virgule dans les expressions d'indiçage. La plupart des usages de .

Références

Liens externes Le Comité du Standard C++

Catégorie:Langage de programmation Catégorie:Langage orienté objet Catégorie:Norme ISO Catégorie:C++