Quelles sont les nouvelles fonctionnalités de C 17 ?
C 17 apporte de nombreuses améliorations et ajouts au langage, notamment :
Caractéristiques du langage :
- Déduction d'arguments de modèle pour les classes de modèles
-
Modernisation à l'aide de ... et de listes : Fournit une syntaxe plus propre pour l'utilisation de std::initializer_list.
-
Multi-retour et flux plus propres control : Introduit des fonctionnalités telles que les liaisons structurées et if constexpr, simplifiant le flux de contrôle complexe scénarios.
-
Boucles for généralisées basées sur une plage : Étend les boucles for basées sur une plage pour prendre en charge les sentinelles et les types non-conteneurs.
-
Tableaux de correctifs de conversion de pointeur : Résout les problèmes liés à la conversion de tableaux de pointeurs en différents pointeurs types.
Ajouts à la bibliothèque :
-
Types de données : Ajoute std::variant, std::facultatif, std ::any et std::string_view pour améliorer la gestion des données et manipulation.
-
invoke stuff : Présente std::invoke et std::apply pour simplifier l'invocation de fonction et la gestion des arguments.
-
Système de fichiers TS v1 : Offre une API standardisée pour les opérations du système de fichiers.
-
Nouveau algorithms : Inclut des algorithmes comme transform_reduce, exclusive_scan et d'autres, optimisés pour le parallélisme et l'efficacité.
-
Threading : Améliore les capacités de threading avec std::shared_mutex et d'autres fonctionnalités.
-
Library Fundamentals TS v1 : Fournit des fonctionnalités pour algorithmes de recherche, allocateurs polymorphes et autres utilitaires.
-
Améliorations des conteneurs : Ajoute try_emplace, insert_or_assign, splicing et bien plus encore pour une gestion améliorée des conteneurs.
-
Pointeur intelligent changements : Inclut des correctifs et des améliorations pour unique_ptr et faible_from_this.
-
Divers : Inclut des fonctions utilitaires telles que std::clamp, std::lcm et autres, élargissant les capacités de la bibliothèque standard.
Obsolète et supprimé Caractéristiques :
-
Supprimé : enregistrez des mots-clés, des trigraphes, des alias ios et autres.
-
Obsolète : allocateurs en std ::fonction et du C bibliothèques.
Remarque :
- Certaines fonctionnalités peuvent ne pas être disponibles dans tous les compilateurs tant qu'ils ne prennent pas en charge C 1z, qui inclut C 17 et des mises à jour supplémentaires. .
- Référez-vous à la documentation officielle pour plus de détails et de spécifications.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!