"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 > Quelles sont les principales fonctionnalités du langage et de la bibliothèque introduites dans C ++ 17?

Quelles sont les principales fonctionnalités du langage et de la bibliothèque introduites dans C ++ 17?

Publié le 2025-02-06
Parcourir:194

What are the Key Language and Library Features Introduced in C  17?

Nouvelles fonctionnalités en c

Fonctionnalités de la langue:

    Utilisation du modèle amélioré:
  • Modèles de classe

      Représentation des valeurs de tout type avec modèle & lt; auto & gt;
  • Lambda Modiments:
  • Lambda. Introduction de constexpr lambdas

      Capacité à capturer cela en lambdas
  • Attributes:
  • ] Introduction de nouveaux attributs, tels que [[Fallthrough]], [[Nodiscard]], et [[peut-être_unusy]]

  • Cleanup de syntaxe:
  • Variables en ligne

      Syntaxe d'espace de noms simplifié: espace de noms a :: b
    • Expressions de non-throw: lance () et noExcept (true)
  • Control Flow Improversés:
  • Bouxes structurées pour déballer les valeurs

      if (init; condition) and switch (init; condition) for enhanced flow control
    • Generalized range-based for loops
    • if constexpr for conditional compilation
  • Autres fonctionnalités notables:
  • HexaDecimal Float Point Literals

      allocation de mémoire dynamique pour les données sur-aligné
    • Copie garantie Elision
    • Correction de l'ordre d'évaluation pour les expressions
    • Initialisation de liste directe des enums
    • Garanties de progrès avant pour les threads
  • &&&] les ajouts de la bibliothèque:

Types de données:

std :: variant pour représenter des valeurs de différents types

    std: : facultatif pour représenter des valeurs facultatives
  • std :: tout pour représenter les valeurs de tout type, y compris les types non copyables
  • std :: string_view pour une gestion efficace des références de chaîne
  • std :: octet pour représenter des données sans information de type
  • manipulation callable:

std :: invoke for générique invocation

    ] std :: appliquer pour invocation callable basée sur des tuples
  • std :: make_from_tuple pour la construction d'objets à partir de tuples
  • introduction de IS_invocable et des traits associés
  • Bibliothèque de systèmes de fichiers:

implémentation de la spécification technique du système de fichiers (ts)

  • Nouveaux algorithmes:

for_each_n, réduir, transform_reduce, et plus

  • Fiffture d'améliorations:

Access

    garanties atomiques et détection de taille d'interférence matérielle
  • Fondamentaux de la bibliothèque

allocateur polymorphique (pMr)

    Improvements de conteneurs:
  • try_emplace et insert_or_assign pour une insertion de récipient efficace

Splicing for Maps, sets et non ordonné conteneurs non-const data () Access for Strings

  • pointeurs intelligents:
  • Correction et ajustement à UNIQUE_PTR

Introduction de WIBL_FROM_THIS pour gérer les pointeurs partagés

    Misc:
  • MISC:

] Utilisation de C11 au lieu de C99 pour la bibliothèque standard

    STD réservé [0-9] Espaces de noms pour les futures bibliothèques standard
  • diverses fonctions utilitaires (détruire, non initialisé _ ***)
  • Exposure of special math functions
  • Introduction of std::clamp, std::gcd, and std::lcm
  • Exception handling improvements, including std::uncaught_exceptions
  • std :: as_const, std :: bool_constant, et divers utilitaires de modèle
  • Amélioration de la bibliothèque chrono
  • Introduction des opérateurs booléens (std :: conjonction, std :: disjunction, std: : Négation)
  • Règles pour l'utilisation de NOexcept dans STD
  • Fonctionnalités dépréciées:

Suppression de certaines bibliothèques C, & lt; codecvt & gt;, résultat_of, et autres

    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