Utility library
C++ enthält eine Vielzahl von Utility-Bibliotheken, die Funktionalität bereitstellen, die von Bit-Zählung bis zu partieller Funktionsanwendung reicht. Diese Bibliotheken können grob in zwei Gruppen unterteilt werden:
- Sprachunterstützungsbibliotheken, und
- Allzweckbibliotheken.
Sprachunterstützung
Sprachunterstützungsbibliotheken stellen Klassen und Funktionen bereit, die eng mit Sprachfunktionen interagieren und gängige Sprachidiome unterstützen.
Implementierungseigenschaften (seit C++20)
Der Header <version> liefert implementierungsabhängige Informationen über die C++-Standardbibliothek (wie Versionsnummer und Releasedatum). Er definiert außerdem die Bibliothek-Feature-Test-Makros .
Typsupport
Grundlegende Typen (z.B. std::size_t , std::nullptr_t ), RTTI (z.B. std::type_info )
Programm-Dienstprogramme
Beendigung (z.B. std::abort , std::atexit ), Umgebung (z.B. std::system ), Signale (z.B. std::raise ).
Dynamische Speicherverwaltung
Smart Pointer (z.B. std::shared_ptr ), Allokatoren (z.B. std::allocator oder std::pmr::memory_resource ), C-Style-Speicherverwaltung (z.B. std::malloc ).
Fehlerbehandlung
Ausnahmen (z.B. std::exception , std::terminate ), Assertions (z.B. assert ).
Variadische Funktionen
Unterstützung für Funktionen, die eine beliebige Anzahl von Parametern akzeptieren (z.B. über va_start , va_arg , va_end ).
Initializer-Listen (seit C++11)
|
Definiert im Header
<initializer_list>
|
|
|
(C++11)
|
referenziert ein temporäres Array, das bei
Listeninitialisierung
erstellt wird
(Klassentemplate) |
Erfassung von Quellcode-Informationen (seit C++20)
|
Definiert im Header
<source_location>
|
|
|
(C++20)
|
eine Klasse, die Informationen über den Quellcode repräsentiert, wie Dateinamen, Zeilennummern und Funktionsnamen
(Klasse) |
Drei-Wege-Vergleich (seit C++20)
|
Definiert im Header
<compare>
|
|
|
spezifiziert, dass der Operator
<=>
ein konsistentes Ergebnis für gegebene Typen liefert
(Konzept) |
|
|
(C++20)
|
der Ergebnistyp des 3-Wege-Vergleichs, der alle 6 Operatoren unterstützt, nicht substituierbar ist und unvergleichbare Werte erlaubt
(Klasse) |
|
(C++20)
|
der Ergebnistyp des 3-Wege-Vergleichs, der alle 6 Operatoren unterstützt und nicht substituierbar ist
(Klasse) |
|
(C++20)
|
der Ergebnistyp des 3-Wege-Vergleichs, der alle 6 Operatoren unterstützt und substituierbar ist
(Klasse) |
|
benannte Vergleichsfunktionen
(Funktion) |
|
|
(C++20)
|
eingeschränktes Funktionsobjekt, das
x
<=>
y
implementiert
(Klasse) |
|
(C++20)
|
ermittelt den Ergebnistyp des Drei-Wege-Vergleichsoperators
<=>
für gegebene Typen
(Klassentemplate) |
|
(C++20)
|
die stärkste Vergleichskategorie, in die alle gegebenen Typen konvertiert werden können
(Klassentemplate) |
|
(C++20)
|
führt einen 3-Wege-Vergleich durch und erzeugt ein Ergebnis vom Typ
std::strong_ordering
(Anpassungspunktobjekt) |
|
(C++20)
|
führt einen 3-Wege-Vergleich durch und erzeugt ein Ergebnis vom Typ
std::weak_ordering
(Anpassungspunktobjekt) |
|
(C++20)
|
führt einen 3-Wege-Vergleich durch und erzeugt ein Ergebnis vom Typ
std::partial_ordering
(Anpassungspunktobjekt) |
|
(C++20)
|
führt einen 3-Wege-Vergleich durch und erzeugt ein Ergebnis vom Typ
std::strong_ordering
, selbst wenn
operator
<=>
nicht verfügbar ist
(Anpassungspunktobjekt) |
|
(C++20)
|
führt einen 3-Wege-Vergleich durch und erzeugt ein Ergebnis vom Typ
std::weak_ordering
, selbst wenn
operator
<=>
nicht verfügbar ist
(Anpassungspunktobjekt) |
|
(C++20)
|
führt einen 3-Wege-Vergleich durch und erzeugt ein Ergebnis vom Typ
std::partial_ordering
, selbst wenn
operator
<=>
nicht verfügbar ist
(Anpassungspunktobjekt) |
Coroutinen-Unterstützung (seit C++20)
Typen für Coroutine -Unterstützung (z.B. std::coroutine_traits , std::coroutine_handle ).
Vertragsunterstützung (seit C++26)
Typen für Contract -Unterstützung (z.B. std::contracts::contract_violation ).
Allgemeine Hilfsprogramme
Tauschen
|
Definiert im Header
<utility>
|
|
|
tauscht die Werte zweier Objekte
(Funktionstemplate) |
|
|
(C++14)
|
ersetzt das Argument durch einen neuen Wert und gibt seinen vorherigen Wert zurück
(Funktionstemplate) |
|
Definiert im Header
<concepts>
|
|
|
(C++20)
|
tauscht die Werte zweier Objekte
(Customization Point Object) |
Typoperationen (since C++11)
|
Definiert im Header
<utility>
|
|
|
(C++11)
|
leitet ein Funktionsargument weiter und verwendet den Typ-Template-Parameter, um seine Wertkategorie zu erhalten
(Funktionstemplate) |
|
(C++23)
|
leitet ein Funktionsargument weiter, als ob es in die Wertkategorie und Konstanz des Ausdrucks des angegebenen Typ-Template-Parameters umgewandelt würde
(Funktionstemplate) |
|
(C++11)
|
wandelt das Argument in einen xvalue um
(Funktionstemplate) |
|
(C++11)
|
wandelt das Argument in einen xvalue um, wenn der Move-Konstruktor keine Ausnahme wirft
(Funktionstemplate) |
|
(C++17)
|
erhält eine Referenz auf
const
zu seinem Argument
(Funktionstemplate) |
|
(C++11)
|
erhält eine Referenz auf ein Objekt des Template-Typarguments zur Verwendung in einem nicht ausgewerteten Kontext
(Funktionstemplate) |
|
(C++23)
|
konvertiert eine Enumeration in ihren zugrundeliegenden Typ
(Funktionstemplate) |
Integer-Vergleichsfunktionen (seit C++20)
|
Definiert im Header
<utility>
|
|
|
vergleicht zwei ganzzahlige Werte und stellt sicher, dass signierte negative Zahlen kleiner als unsignierte Zahlen sind
(Funktionstemplate) |
|
|
(C++20)
|
prüft, ob ein ganzzahliger Wert im Wertebereich eines gegebenen ganzzahligen Typs liegt
(Funktionstemplate) |
Relationale Operatoren (bis C++20)
|
Definiert im Header
<utility>
|
|
|
Definiert im Namespace
std::rel_ops
|
|
|
(in C++20 veraltet)
|
generiert automatisch Vergleichsoperatoren basierend auf benutzerdefiniertem
operator
==
und
operator
<
(Funktionstemplate) |
Konstruktions-Tags (seit C++11)
|
Definiert im Header
<utility>
|
|
|
Stückweise Konstruktionsmarkierung
(Markierung) |
|
|
In-place-Konstruktionsmarkierung
(Markierung) |
|
|
(C++26)
|
Wert-Konstruktionsmarkierung
(Markierung) |
Paare und Tupel
|
Definiert im Header
<utility>
|
|
|
implementiert binäres Tupel, d.h. ein Wertepaar
(Klassen-Template) |
|
|
Definiert im Header
<tuple>
|
|
|
(C++11)
|
implementiert Container fester Größe, der Elemente möglicherweise unterschiedlicher Typen enthält
(Klassen-Template) |
|
(C++17)
|
ruft eine Funktion mit einem Tupel von Argumenten auf
(Funktions-Template) |
|
(C++17)
|
konstruiert ein Objekt mit einem Tupel von Argumenten
(Funktions-Template) |
Tupel-Protokoll (seit C++11) |
|
|
Definiert im Header
<tuple>
|
|
|
Definiert im Header
<utility>
|
|
|
Definiert im Header
<array>
|
|
|
Definiert im Header
<ranges>
|
|
|
Definiert im Header
<complex>
|
|
|
(C++11)
|
ermittelt die Anzahl der Elemente eines tupelartigen Typs
(Klassen-Template) |
|
(C++11)
|
ermittelt die Elementtypen eines tupelartigen Typs
(Klassen-Template) |
Summentypen und typlöschte Wrapper (seit C++17)
|
Definiert im Header
<optional>
|
|
|
(C++17)
|
Ein Wrapper, der möglicherweise ein Objekt enthält oder nicht
(Klassentemplate) |
|
Definiert im Header
<expected>
|
|
|
(C++23)
|
Ein Wrapper, der entweder einen erwarteten oder einen Fehlerwert enthält
(Klassentemplate) |
|
Definiert im Header
<variant>
|
|
|
(C++17)
|
Eine typsichere, diskriminierte Union
(Klassentemplate) |
|
Definiert im Header
<any>
|
|
|
(C++17)
|
Objekte, die Instanzen eines beliebigen
CopyConstructible
Typs enthalten
(Klasse) |
Bitset
|
Definiert im Header
<bitset>
|
|
|
implementiert Bit-Arrays fester Länge
(Klassentemplate) |
|
Bitmanipulation (seit C++20)
Der Header <bit> bietet mehrere Funktionsvorlagen zum Zugriff, zur Manipulation und Verarbeitung einzelner Bits und Bitsequenzen. Die Byte-Reihenfolge ( Endianness ) von skalaren Typen kann über die std:: endian Einrichtung inspiziert werden.
Funktionsobjekte (seit C++11)
Partielle Funktionsanwendung (z.B. std::bind ) und verwandte Utilities: Hilfsmittel für Bindungen wie std::ref und std::placeholders , polymorphe Funktionswrapper: std::function , vordefinierte Funktoren (z.B. std::plus , std::equal_to ), Pointer-to-Member zu Funktionskonvertern std::mem_fn .
Hash-Unterstützung (seit C++11)
|
Definiert im Header
<functional>
|
|
|
(C++11)
|
Hash-Funktionsobjekt
(Klassentemplate) |
Siehe auch
|
C-Dokumentation
für
Utility-Bibliothek
|