Hilfsbibliotheken
C++ beinhaltet eine Reihe von Hilfsbibliotheken, deren Funktionsumfang von Bitverarbeitung bis zur Untertstützung von teilweise gebundenen Funktionen. Diese Bibliotheken können grob in zwei Gruppen eingeteilt werden:
- Bibliotheken, die die Programmiersprache unterstützen,
- und Bibliotheken mit grundlegenden Funktionen.
[Bearbeiten] Unterstützung der Programmiersprache
Sprachunterstützungsbibliotheken bieten Klassen und Funktionen, die eng mit Spracheigenschaften zusammenarbieten und allgemeine Sprachidiome unterstützen.
[Bearbeiten]Typenunterstützung
Basistypen (z.B. std::size_t, std::nullptr_t), RTTI (e.g. std::type_info), type traits (z.B. std::is_integral, std::rank)
[Bearbeiten] Implementationeigenschaften
Die Headerdatei <version> gibt implementationsabhängige Informationen über die C++-Standardbibliothek, wie Versionsnummer und Veröffentlichungsdatum. Des weiteren werden Bibliotheksmakros zum Testen verschiedener Eigenschaften definiert. | (seit C++20) |
[Bearbeiten] Hilfsmittel für grundlegende Unterstützung von Programme
- Beenden von Programmen (z.B. std::abort, std::atexit)
- Laufzeitumgebung (z.B. std::system)
- Signale (z.B. std::raise)
[Bearbeiten] Dynamische Speicherverwaltung
- Intelligente Zeiger (z.B. std::shared_ptr)
- Allokatoren (z.B. std::allocator oder std::pmr::memory_resource)
- Speicherverwaltung im C-Stil (z.B. std::malloc)
[Bearbeiten] Objektzugriffe
definiert in Header <new> | |
(C++17) | Optimisierungsschranke für Zeiger (Funktions-Template) |
[Bearbeiten] Fehlerbehandlung
- Ausnahmen (z.B. std::exception, std::terminate)
- Bedingungsaussagen (z.B. assert)
[Bearbeiten] Quellkodeinformationen verarbeiten
definiert in Header <source_location> | |
(C++20) | Eine Klasse, die Informationen über den Quellkode, wie Dateiname, Zeilennummern und Funktionsnamen, bietet (Klasse) |
[Bearbeiten] Initialisierungslisten
definiert in Header <initializer_list> | |
(C++11) | erlaubt die Verwendung von Initialisierungslisten für komplexe, nicht-POD Datentypen Original: {{{2}}} The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (Klassen-Template) |
[Bearbeiten] 3-Wegevergleich
definiert in Header <compare> | |
spezifiziert, daß der Operator <=> ein konsistentes Ergebnis für den gegebenen Typ erzeugt (Konzept) | |
(C++20) | der Ergebnistyp des 3-Wegevergleichs, der alle 6 Operatoren unterstützt, nicht ersetzbar ist und nichtvergleichbare Werte erlaubt (Klasse) |
(C++20) | das Ergebnis eines 3-Wegevergleichs, der alle 6 Operatoren unterstützt und nicht ersetzbar ist (Klasse) |
(C++20) | das Ergebnis des 3-Wegevergleichs, der alle 6 Operatoren unterstützt und ersetzbar ist (Klasse) |
benamte Vergleichsfunktion (Funktion) | |
(C++20) | Funktionsobjekt, daß x <=> y implementiert (Klasse) |
(C++20) | gibt den Ergebnistype eines 3-Wegevergleichs <=> für den gegebenen Typ (Klassen-Template) |
(C++20) | die stärkste Vergleichskategorie, in die alle gegebenen Typen konvertiert werden können (Klassen-Template) |
(C++20) | führt einen 3-Wegevergleich und erzeugt ein Ergebnis vom Typ std::strong_ordering (Anpassungspunkt) |
(C++20) | führt einen 3-Wegevergleich durch und erzeugt ein Ergebnis vom Typ std::weak_ordering (Anpassungspunkt) |
(C++20) | führt einen 3-Wegevergleich durch und erzeugt ein Ergebnis vom Typ std::partial_ordering (Anpassungspunkt) |
führt einen 3-Wegevergleich durch und erzeugt ein Ergebnis vom Typ std::strong_ordering auch falls operator<=> nicht verfügbar ist (Anpassungspunkt) | |
(C++20) | führt einen 3-Wegevergleich durch und erzeugt ein Ergebnis vom Typ std::weak_ordering auch falls operator<=> nicht vorhanden sind (Anpassungspunkt) |
führt einen 3-Wegevergeleich durch und erzeugt ein Ergebnis vom Typ std::partial_ordering auch wenn operator<=> nicht verfügbar ist (Anpassungspunkt) |
[Bearbeiten]Unterstützung für Coroutinen
Typen für die Unterstützung von Coroutinen, z.B. std::coroutine_traits, std::coroutine_handle. | (seit C++20) |
[Bearbeiten]Variadische Funktionen
Unterstützung von Funktionen mit beliebiger Anzahl von Parameters (z.B. va_start, va_arg, va_end)
[Bearbeiten] Grundlegende Hilfsmittel
[Bearbeiten]Swap and type operations
definiert in Header <utility> | |
tauscht die Werte von zwei Objekten Original: swaps the values of two objects The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (Funktions-Template) | |
(C++14) | ersetzt das Argument durch einen neuen Wert und gibt den alten Wert zurück (Funktions-Template) |
(C++11) | leitet eine Funktion Argument Original: forwards a function argument The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (Funktions-Template) |
(C++11) | erhält einen rvalue Referenz Original: obtains an rvalue reference The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (Funktions-Template) |
(C++11) | erhält eine rvalue Referenz, wenn der Umzug Konstruktor nicht werfen wird Original: obtains an rvalue reference if the move constructor does not throw The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (Funktions-Template) |
(C++17) | erzeugt eine Referenz auf eine Konstante des Argumentes (Funktions-Template) |
(C++11) | erhält die Art des Ausdrucks in unevaluierten Kontext Original: obtains the type of expression in unevaluated context The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (Funktions-Template) |
(C++23) | konvertiert einen Aufzählungswert in den zugrundeliegenden Typ der Aufzählung (Funktions-Template) |
definiert in Header <concepts> | |
(C++20) | vertauscht die Werte zweier Objekte (Anpassungspunkt) |
[Bearbeiten] Ganzzahlenvergleiche
definiert in Header <utility> | |
vergleicht zwei Ganzzahlen ohne Wertveränderung durch Konvertierung (Funktions-Template) | |
(C++20) | überprüft, ob ein Ganzzahlwert im Wertebereich eines gegebenen Ganzzahltyps liegt (Funktions-Template) |
[Bearbeiten] Vergleichsoperationen
definiert in Header <utility> | |
definiert in Namensraum std::rel_ops | |
automatically generates comparison operators based on user-defined operator== and operator< (Funktions-Template) |
[Bearbeiten]Paare and Tuple
definiert in Header <utility> | |
implementiert binären Tupel, d.h. ein Paar von Werten Original: implements binary tuple, i.e. a pair of values The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (Klassen-Template) | |
(C++11) | Tag-Typ verwendet werden, um die korrekte Funktion Überlast für stückweise Konstruktion auszuwählen Original: tag type used to select correct function overload for piecewise construction The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (Klasse) |
(C++11) | ein Objekt vom Typ piecewise_construct_t verwendet, um Funktionen für stückweise Konstruktion eindeutig zu machen Original: an object of type piecewise_construct_t used to disambiguate functions for piecewise construction The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (konstanten) |
(C++14) | bietet eine Folge von Ganzzahlen zur Kompilationszeit (Klassen-Template) |
definiert in Header <tuple> | |
(C++11) | implementiert Container fester Größe, die Elemente von potentiell unterschiedlichen Datentypen enthalten können Original: implements fixed size container, which holds elements of possibly different types The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (Klassen-Template) |
(C++17) | ruft eine Funktion mit einem Tuple an Argumenten aus (Funktions-Template) |
(C++17) | erzeugt ein Objekt aus einem Tuple von Argumenten (Funktions-Template) |
definiert in Header <tuple> | |
definiert in Header <utility> | |
definiert in Header <array> | |
definiert in Header <ranges> | |
(C++11) | gibt die Anzahl der Elemente für einen Typ, der sich wie ein std::tuple verhält (Klassen-Template) |
(C++11) | gibt den Typ eines Elementes für einen Typ, der sich wie ein std::tuple verhält (Klassen-Template) |
[Bearbeiten]optionale, variante und beliebige Typen
definiert in Header <optional> | |
(C++17) | eine Hülle, die ein Objekt beinhaltet order nicht. (Klassen-Template) |
definiert in Header <variant> | |
(C++17) | eine typensichere Union (Klassen-Template) |
definiert in Header <any> | |
(C++17) | Objekte, die einen beliebigen CopyConstructible Type speichern können (Klasse) |
definiert in Header <utility> | |
Marker für in-place-Konstruktion (Klassen-Template) |
[Bearbeiten] Unterstützung für Bitbearbeitung
definiert in Header <bitset> | |
implementiert konstante Länge Bit-Array Original: implements constant length bit array The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (Klasse) |
[Bearbeiten]Funktionsobjekte
- Funktionen mit teilweise voreingestellten Argumenten wie std::bind
- Hilfsmittel zum Argumentbinden wie std::ref und std::placeholders
- polymorphe Funktionshüllen wie std::function
- vordefinierte Funktoren wie std::plus, std::equal_to)
- Konvertierung von Funktionen wie std::mem_fn.
[Bearbeiten]Hashunterstützung
definiert in Header <functional> | |
(C++11) | Funktionsobjekt zur Erzeugung von Hashwerten (Klassen-Template) |
[Bearbeiten]Datum und Zeit
- Time tracking (z.B. std::chrono::time_point, std::chrono::duration)
- Datum und Zeit im C-Stil (z.B. std::time, std::clock)
[Bearbeiten] Grundlegende Konvertierungen von Zeichenketten
Zusätzlich zu ausgeklügelten locale-abhängigen Parsern und Formatierern wie sie durch die C++ I/O-Bibliothek, die C I/O-Bibliothek, C++-Zeichenkonvertern und C-Zeichenkonvertern zur Verfügung gestellt werden, bietet die Headerdatei <charconv> leichtgewichtige, locale-unabhängige, parser und Formatierer für arithmetische Typen an, die weder Speicher allokieren, noch Ausnahmen auslösen.
definiert in Header <charconv> | |
(C++17) | konvertiert eine Ganzzahl oder eine Gleitkommazahl in eine Zeichenfolge (Funktion) |
(C++17) | konvertiert eine Zeichenfolge in eine Ganzzahl oder eine Gleitkommazahl (Funktion) |
(C++17) | definiert die Formatierung für std::to_chars und std::from_chars (enum) |
[Bearbeiten]Formatting library
Hilfen für die typensichere Zeichenkettenformatierung
definiert in Header <format> | |
(C++20) | speichert die formatierte Darstellung der Argumente in einer neuen Zeichenkette (Funktions-Template) |
(C++20) | übergibt die formatierte Darstellung der Argumente an einen Ausgabestrom (Funktions-Template) |
(C++20) | übergibt die formatierte Darstellung der Argumente an einen Ausgabestrom unter Berücksichtigung der gegeben Längenbeschränkung (Funktions-Template) |
(C++20) | bestimmt die Anzahl von Zeichen, die notwendig sind, um die formatierte Darstellung der Argumente zu speichern (Funktions-Template) |
(C++20) | nicht-templatisierte Variante von std::format mit einer typenlosen Argumentenrepresentation (Funktions-Template) |
(C++20) | nicht-templatisierte Variante von std::format_to mit einer typenlosen Argumentenrepresentation (Funktions-Template) |
(C++20) | Klassentemplate, daß Formatierungsregeln für einen gegebene Type definiert (Klassen-Template) |
(C++20) | Ausnahme, dir bei Formatierungsfehlern ausgelöst wird (Klasse) |
[Bearbeiten] Stacktrace
definiert in Header <stacktrace> | |
(C++23) | Darstellung eines Ertrags in einem Stacktrace (Klasse) |
(C++23) | angenommene Darstellung einer Folge von Aufrufen, der aus Stacktrace-Einträgen besteht. (Klassen-Template) |
[Bearbeiten] Referenzen
C documentation for Utility library |