"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Nouvelles fonctionnalités et améliorations clés apportées par C ++ 17

Nouvelles fonctionnalités et améliorations clés apportées par C ++ 17

Publié le 2025-04-14
Parcourir:285

What are the Key New Features and Enhancements Introduced in C  17?

Quelles sont les nouvelles fonctionnalités en c Déduction d'argument pour les modèles de classe

modèle pour représenter les valeurs de tout modèle de modèle de modèle non type

corrige à des arguments de modèle non de type
  • Integer

    modernisation en utilisant avec ... et listes

    constexpr lambdas
    • capturant ceci dans les attributs de lambdas
    • tels que [[Fallthrough]], [[nodiscard]], [peut-être_unused]]
    • Enumerators
    • Utilisation dans des attributs pour éviter de répéter les espaces de noms d'attribut
    • exigeant que les compilateurs ignorent les attributs non standard ils ne reconnaissent pas les alias de nom static_assert (expression); Sans chaîne
    • n'éliminer aucun throw et le remplacer par throw () et noexcept (true)
    • Cleaner Multi-Rentur (init; condition) et commutateur (init; condition) pour les instructions étendues if et commutateur
    • généralisation de la plage basée sur les boucles pour les sentinelles et les itérateurs personnalisés
    • si constexpr pour presque générique CODE
    • disc:
    • HexaDecimal Float Point littéral Expressions
    • Initialisation de liste directe des enums
    Faire des garanties de progression (fpgs)
  • littéraux de caractères u8'u ', u8't', u8'f ', u8'8'

    non-une fois que le système de type

    a_clude pour un haltero Errors
    • Arrays de fixations de conversion du pointeur
    • fixes aux constructeurs héréditaires et agrégate l'initialisation avec l'héritage
    • fonctions utilitaires pour le type std punning
  • bibliothèque Ajouts:

    • Types de données:
    • std :: variant pour les types d'union balisés
    • std :: Fory Fory Fory Falles Value
    • std :: string_view comme référence à un tableau de caractères ou sous-chaîne
    • std :: by comme ni un entier ni un caractère, mais juste des données
    • invoquer Des trucs:
    • std :: invoquer pour la fonction générique appelant
    • std :: postuler pour déballer les tuples dans les appels de fonction
    • std :: make_from_tuple et std :: appliquer pour la construction d'objets
    • invoke_result for function invocation functionality
  • Système de fichiers ts v1
  • : opérations améliorées du système de fichiers

    Nouveaux algorithmes:

    pour_ach transform_inclusive_scan
    • threading: std :: shared_mutex, atomic :: is_always_lockfree, et scoped_lock parallel Machinery

      • Bibliothèque Fundamentals TS v1:
      • Recherche d'algorithmes, allocateur polymorphique (pMR), sampling
      • Improvisé des conteneurs:
      • try_emplace et insert_or_assign, pour former pour des mapes et des sets, non-conser. chaînes, non-membre std :: size, std :: vide, std :: data, support minimal de type incomplet dans les conteneurs, itérateur contigu "concept", itérateurs constexpr, constructeurs mis à jour pour les changements de pointeur intelligents:
      • les fixes de l'unité_ptr et de tweaks à la faiblesse du pointeur: les formes de pointel Ce
      • d'autres améliorations du type de données STD:
      • Construction de std :: tuple avec accolades bouclées, référence trivialement copieable_wrapper
    • Misc: «&&&]

      c 17 La bibliothèque est basée sur c11 C99
      • STD réservé [0-9] pour les futures bibliothèques standard
      • fonctions utilitaires comme Destre Functions
      • std :: clamp ()
      • Calculs GCD et LCM
      std :: Uncvit_Exceptions pour lancer dans les destructeurs
    • std :: as_const et std :: bool_constants std_t types
    • std_t types std_t et std :: void_t types
    • std :: propriétaire_less pour que les pointeurs intelligents soient basés sur le contenu Améliorations à std :: chrono
    • std :: conjonction, std :: disjunction, disjunction STD :: Négation std :: not_fn
    • Règles pour NoExcept dans std std :: is_contiguous_layout
    • Conversion de nombres hautes performances avec std :: to_chars et std :: from_chars
    • traits:
    • swap, is_aggregate, has_unique_object_represenations

      [&] [&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& être

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3