C++17, anciennement connu sous le nom de C++1z, est une norme pour le langage de programmation C++. Elle a été publiée en sous le nom de ISO/CEI 14882:2017.
Le dernier working draft gratuit est le N4659, qui date du , les seules différences avec le standard étant des corrections éditoriales.
Suppression Cette version de C++ a non seulement ajouté de nouvelles fonctionnalités, mais en a également supprimé quelques-unes.
Suppression des trigrammes. Suppression de certains types et fonctions obsolètes de la bibliothèque standard, notamment , et les anciens adaptateurs de fonction. Celles-ci ont été remplacées dans C++11 par des fonctionnalités améliorées telles que , , et lambdas. Suppression de l'utilisation (anciennement obsolète) du mot clé en tant que spécificateur de classe de stockage. Ce mot-clé reste réservé.
Nouvelles fonctionnalités
Langage
Le message de est facultatif. Utilisation possible de (comme alternative à ) pour les paramètres de . Nouvelles règles de déduction des avec . Définitions d'espace de noms imbriquées : au lieu de . Utilisation d'attributs sur les espaces de noms et les énumérateurs. Nouveaux attributs standards , et . Caractères littéraux UTF-8 () (les chaines littérales UTF-8 existent depuis C++11). Littéraux hexadécimaux à virgule flottante. Utilisation de pour les . Évaluation constante des arguments des . pour les . statique évalué à la compilation : . Déclarations : . Initialiseurs dans les instructions et . L'initialisation par copie et l'initialisation directe d'objets de type partir de de type (en ignorant les qualificatifs cv) n'entraîne l'appel d'aucun constructeur de copie ni de déplacement à partir de l'expression (élision de copie). Déduction des arguments des classes disponibles pour les constructeurs. Autorisant l'écriture au lieu d'exiger la fourniture explicite des types des arguments du constructeur ou une fonction de construction intermédiaire . Variables permettant la définition de variables dans les fichiers d'en-tête sans enfreindre la règle de définition unique (les règles sont similaires à celle des fonctions ). permettant de vérifier la disponibilité d'un en-tête par les directives du préprocesseur. La valeur de est changée en . Les spécifications d'exception ont été intégrées à la signature des fonctions. Les expressions lambda peuvent capturer par valeur.
Bibliothèque
La majorité de Library Fundamentals V1 TS, y compris : : référence non propriétaire en lecture seule sur une séquence de caractères ou une sous-chaîne de caractères. : représentation d'objets facultatifs. pour contenir des valeurs uniques de tout type. en remplacement de dans la gestion des exceptions. Nouvelles fonctions d'insertion et pour les structures de données associatives et . Fonctions libres d'accès uniforme au conteneur , et . Définition des « itérateurs contigus ». Bibliothèque de système de fichiers basée sur . Versions parallèles de plusieurs algorithmes STL. Fonctions spéciales mathématiques supplémentaires, y compris les intégrales elliptiques et les fonctions de Bessel. : un type somme. : type représentant un multiplet de données comme un multiplet plutôt qu'un caractère. Traits modélisant les opérateurs logiques : , et .
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++