„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Was sind die in C ++ 17 eingeführten wichtigsten Sprach- und Bibliotheksfunktionen?

Was sind die in C ++ 17 eingeführten wichtigsten Sprach- und Bibliotheksfunktionen?

Gepostet am 2025-02-06
Durchsuche:679

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

Neue Funktionen in c 17

nach Abschluss der Feature -Entwicklung für c 17, wurden mehrere neue Sprachfunktionen und Bibliothekszusätze eingeführt:

Sprachfunktionen:

  • verbesserte Vorlagennutzung:

    • Vorlagen -Argument -Argument -Ableitung für Klassenvorlagen
    • Darstellung von Werten eines Typs mit Vorlage & lt; auto & gt;
  • lambda Verbesserungen:

      ]
    • EINLEITUNG VON CONTEXPR lambdas
    • Fähigkeit, dies in Lambdas
  • Attribute:

  • sind jedoch zu. ] Einführung neuer Attribute wie [[[fallthrough]], [[nodiscard]] und [[vielleicht_Unused]]

    • syntax CleanUp:
    • inline variablen
    • vereinfachte Namespace Syntax: Namespace a :: b
  • no-throw-Ausdrücke: throw () und noexcept (wahr)
    • kontrollflussverbesserungen:
    • strukturierte Bindungen zum Auspacken von Werten
    • if (init; Bedingung) und Switch (init; Bedingung) für verbesserte Flow Control
    • verallgemeinerte Bereichsbasis für Loops
    • Wenn Constexpr für bedingte Kompilierung
]

Andere bemerkenswerte Merkmale:

hexadecimal float point literals dynamische Speicherzuweisung für über-ausgerichtete Daten

    garantiert Elision
  • garantiert.
  • wurde festgestellt, dass die Beweisung für Ausdrücke
  • Direktlisteinitialisierung von Enums
  • Fortschrittsgarantien für Threads

  • Bibliothek Ergänzungen:
  • Datentypen:

std :: variante für die Darstellung von Werten verschiedener Typen

std: : optional für die Darstellung optionaler Werte
  • std :: beliebig für die Darstellung von Werten eines beliebigen Typs, einschließlich nicht kopierbarer Typen
std :: string_view für die effiziente Behandlung von String-Referenzen

std :: byte für die Darstellung von Daten ohne typen Information

  • Callable Handling:

std :: Invoke für generische Callable Invocation

std :: bewerben Sie sich für Tuple-basierte Callable Invocation
  • std :: make_from_tuple für die Erstellung von Objekten aus Tupeln
  • Einführung von IS_invocable und verwandten Merkmalen

] Dateisystembibliothek:

  • Implementierung der technischen Spezifikation des Dateisystems (ts)
neue Algorithmen:

for_each_n, reduzieren, transformieren und mehr
  • Threading-Verbesserungen:
Einführung von std: Access

Atomic -Garantien und Hardware -Interferenzgröße Erkennung

  • Bibliothek Fundamentals ts Additions:
Algorithmen (alg.search

Polymorphic allocator (pmr)

  • Container Improvements:
  • try_emplace and insert_or_assign for efficient container insertion
  • Spleißen für Karten, Sets und nicht ordnungsgemäße Container
  • nicht konstruieren Daten () Zugriff auf Strings
  • intelligente Hinweise:
  • korrigiert und optimiert an einzigartig_ptr
  • Einführung von wreawrom_from_this für die Verwaltung von gemeinsamen Zeigern

misc:

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

    • Verwendung von C11 anstelle von C99 für die Standardbibliothek
    reservierte std [0-9] Namespaces für zukünftige Standardbibliotheken
  • Verschiedene Nutzfunktionen (zerstören, nicht initialisiert _ ***)

    Exposition von besonderen Mathematikfunktionen

    Einführung von std :: clamp, std :: gcd und std :: lcm
    • Ausnahmeverarbeitung Verbesserungen, einschließlich std :: uncaught_exeptions
    • [&anzen ] std :: as_const, std :: bool_constant und verschiedene Vorlagen Utilities
    • verbesserte std :: chrono bibliothek
    • Einführung von booleschen Operatoren (Std :: Konjunktion, Stanz :: disjunction, std: : negation)
    regiert für keine exzepte use Codecvt & gt;, result_of und andere
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3