| Vorhergehende ÜberarbeitungNächste Überarbeitung |
— | kennen:header [2024-02-20 16:04] – [Fehlerbehandlung] rrichter |
---|
| ====== Header der Standard-Bibliothek von C++ ====== |
| > Die Kenntnis der Syntax umfasst höchstens 5% des notwendigen Wissens. |
| >> --- Yechiel Kimchi |
| |
| ===== Übersicht ===== |
| |
| Hier werden die [[#Aufgaben]] |
| der vom Standard geforderten Bibliotheken beschrieben. |
| Darüber hinaus liefern die Hersteller von Compilern weitere |
| betriebssystemabhängige, nicht portable Bibliotheken aus. |
| Die Standard-Bibliothek umfasst die in C++ |
| (C++98, |
| ¹[[begriffe#C++11]], |
| <sup>+</sup>[[begriffe#C++14]], |
| *[[begriffe#C++17]], |
| °[[begriffe#C++20]], |
| ³[[begriffe#C++23]]) definierten Header |
| (einige wurden <del>geächtet</del> oder <del>entfernt</del>) |
| <WRAP col5> |
| [[.:include:algorithm]] \\ |
| [[.:include:any]]* \\ |
| [[.:include:array]]¹ \\ |
| [[.:include:atomic]]¹ \\ |
| [[.:include:barrier]]° \\ |
| [[.:include:bit]]° \\ |
| [[.:include:bitset]] \\ |
| [[.:include:charconv]]* \\ |
| [[.:include:chrono]]¹ \\ |
| <del><codecvt></del> \\ |
| [[.:include:compare]]° \\ |
| [[.:include:complex]] \\ |
| [[.:include:concepts]]° \\ |
| [[.:include:condition_variable]]¹ \\ |
| [[.:include:coroutine]]° \\ |
| [[.:include:deque]] \\ |
| [[.:include:exception]] \\ |
| [[.:include:execution]]<sup>+</sup> \\ |
| [[.:include:expected]]³ \\ |
| [[.:include:filesystem]]* \\ |
| [[.:include:format]]° \\ |
| [[.:include:forward_list]]¹ \\ |
| [[.:include:fstream]] \\ |
| [[.:include:functional]] \\ |
| [[.:include:future]]¹ \\ |
| [[.:include:generator]]³ \\ |
| [[.:include:initializer_list]]¹ \\ |
| [[.:include:iomanip]] \\ |
| [[.:include:ios]] \\ |
| [[.:include:iosfwd]] \\ |
| [[.:include:iostream]] \\ |
| [[.:include:istream]] \\ |
| [[.:include:iterator]] \\ |
| [[.:include:latch]]° \\ |
| [[.:include:limits]] \\ |
| [[.:include:list]] \\ |
| [[.:include:locale]] \\ |
| [[.:include:map]] \\ |
| [[.:include:memory]] \\ |
| <memory_resource><sup>+</sup> \\ |
| [[.:include:mutex]]¹ \\ |
| [[.:include:new]] \\ |
| [[.:include:numbers]]° \\ |
| [[.:include:numeric]] \\ |
| [[.:include:optional]]* \\ |
| [[.:include:ostream]] \\ |
| [[.:include:print]]³ \\ |
| [[.:include:queue]] \\ |
| [[.:include:random]]¹ \\ |
| [[.:include:ranges]]° \\ |
| [[.:include:ratio]]¹ \\ |
| [[.:include:regex]]¹ \\ |
| [[.:include:scoped_allocator]]¹ \\ |
| [[.:include:semaphore]]° \\ |
| [[.:include:set]] \\ |
| [[.:include:shared_mutex]]<sup>+</sup> \\ |
| [[.:include:source_location]]° \\ |
| [[.:include:span]]° \\ |
| [[.:include:sstream]] \\ |
| [[.:include:stack]] \\ |
| [[.:include:stacktrace]]³ \\ |
| [[.:include:stdexcept]] \\ |
| [[.:include:stop_token]]° \\ |
| [[.:include:streambuf]] \\ |
| [[.:include:string]] \\ |
| [[.:include:string_view]]* \\ |
| <del><strstream></del> \\ |
| [[.:include:syncstream]]° \\ |
| [[.:include:system_error]]¹ \\ |
| [[.:include:thread]]¹ \\ |
| [[.:include:tuple]]¹ \\ |
| [[.:include:typeindex]]¹ \\ |
| [[.:include:typeinfo]] \\ |
| [[.:include:type_traits]]¹ \\ |
| [[.:include:unordered_map]]¹ \\ |
| [[.:include:unordered_set]]¹ \\ |
| [[.:include:utility]] \\ |
| [[.:include:valarray]] \\ |
| [[.:include:variant]]* \\ |
| [[.:include:vector]] \\ |
| [[.:include:version]]° |
| </WRAP> |
| \\ |
| sowie die aus der C-Bibliothek übernommenen Header der Form <cXYZ> |
| |
| <WRAP col5> |
| [[.:include:cassert]] \\ |
| <del><ccomplex></del> \\ |
| [[.:include:cctype]] \\ |
| [[.:include:cerrno]] \\ |
| [[.:include:cfenv]] \\ |
| [[.:include:cfloat]] \\ |
| <cinttypes> \\ |
| <del><ciso646></del> \\ |
| [[.:include:climits]] \\ |
| [[.:include:clocale]] \\ |
| [[.:include:cmath]] \\ |
| [[.:include:csetjmp]] \\ |
| [[.:include:csignal]] \\ |
| <del><cstdalign></del> \\ |
| [[.:include:cstdarg]] \\ |
| <del><cstdbool></del> \\ |
| [[.:include:cstddef]] \\ |
| [[.:include:cstdint]] \\ |
| [[.:include:cstdio]] \\ |
| [[.:include:cstdlib]] \\ |
| [[.:include:cstring]] \\ |
| <del><ctgmath></del> \\ |
| [[.:include:ctime]] \\ |
| <cuchar> \\ |
| <cwchar> \\ |
| <cwctype> |
| </WRAP> |
| \\ |
| welche es auch in der Form ''<XYZ.h>'' gibt. |
| Diese packen alle Bezeichner in den globalen |
| [[.:sprachkern#Namensräume|Namensraum]] |
| statt in den Namensraum ''std''. |
| Der Standard empfiehlt für neue Programme die neuere Form ohne ''.h'' |
| mit Ausnahme solcher Programme, die streng C-kompatibel sein sollen. |
| |
| [[kennen:Module|Modulares]] [[begriffe#C++23]] fasst die Header in ''import std;'' (und ''import std.compat;'' für C-Bibliotheken im globalen Namensraum) zusammen. Dort sind ''#include''-Befehle nur im [[kennen:Module#globales_und_privates_fragment|globalen Modulfragment]] erlaubt. |
| |
| ===== Aufgaben ===== |
| ==== Grundlagen ==== |
| * Sprachversion [[.:include:version]], Quelltextposition [[.:include:source_location]] |
| * Konzepte [[.:include:concepts]], 3-Wege-Vergleich [[.:include:compare]] |
| * C-Standarddefinitionen [[.:include:cstddef]], [[.:include:cstdint]], [[.:include:cstdlib]], variable Argumentlisten [[.:include:cstdarg]], |
| ==== Fehlerbehandlung ==== |
| * Ausnahmen [[.:include:exception]] [[.:include:stdexcept]] [[.:include:system_error]] |
| * Fehlererkennung [[.:include:cassert]] und C-Fehlerbehandlung [[.:include:cerrno]] [[.:include:csignal]] [[.:include:csetjmp]] |
| * [[.:include:stacktrace]] für die Fehlerverfolgung |
| ==== Typinformation ==== |
| * Laufzeit-Typinformation [[.:include:typeinfo]] [[.:include:typeindex]] [[.:include:type_traits]] |
| * Wertebereichsgrenzen und Genauigkeit [[.:include:limits]] [[.:include:cfloat]] [[.:include:climits]] |
| ==== Freispeicherverwaltung ==== |
| * [[.:include:memory]] [[.:include:new]] [[.:include:scoped_allocator]] |
| ==== Zeichenketten ==== |
| * [[.:include:string]] [[.:include:string_view]] |
| * C-Funktionen für nullterminierte Zeichenfelder [[.:include:cstring]] |
| * reguläre Ausdrücke [[.:include:regex]] |
| * Zeichensätze [[.:include:cctype]] <cuchar> <cwchar> <cwctype> |
| * Internationalisierung [[.:include:clocale]] [[.:include:locale]] |
| ==== Datum- und Zeitfunktionen ==== |
| * [[.:include:chrono]] [[.:include:ctime]] |
| ==== Mathematik ==== |
| * Funktionen [[.:include:bit]] [[.:include:cmath]], Konstanten [[.:include:numbers]], numerische Algorithmen [[.:include:numeric]] |
| * komplexe Zahlen [[.:include:complex]], Zufallszahlen [[.:include:random]] und Verhältniszahlen [[.:include:ratio]] |
| * Zahlenfelder [[.:include:valarray]] |
| ==== Ein- und Ausgabe ==== |
| * Hilfsklassen [[.:include:ios]] [[.:include:iosfwd]] [[.:include:streambuf]] |
| * Ein-/Ausgabe-Ströme [[.:include:iostream]] [[.:include:istream]] [[.:include:ostream]] |
| * Ein-/Ausgabe-Formatierung mit [[.:include:format]], [[.:include:print]] und [[.:include:iomanip]], Synchronisierung [[.:include:syncstream]] |
| * Dateiströme [[.:include:fstream]] und ''string''-Ströme [[.:include:sstream]] |
| * Konvertierung von Zahlen in Zeichenketten und zurück [[.:include:charconv]] |
| * C-Funktionen für Konsole und Dateien [[.:include:cstdio]] |
| * Dateiverwaltung [[.:include:filesystem]] |
| ==== Schablonen der Standardbibliothek ==== |
| * Übersicht über [[.:stl]] |
| * Algorithmen [[.:include:algorithm]] |
| * sequentielle Container [[.:include:array]] [[.:include:bitset]] [[.:include:deque]] [[.:include:forward_list]] [[.:include:initializer_list]] [[.:include:list]] [[.:include:vector]] |
| * assoziative Container [[.:include:map]] [[.:include:set]] |
| * Hash-Container [[.:include:unordered_map]] [[.:include:unordered_set]] |
| * Container-Adapter [[.:include:queue]] [[.:include:stack]] |
| * Iteratoren [[.:include:iterator]] und Bereiche [[.:include:ranges]], [[.:include:span]] |
| * Funktionsadapter [[.:include:functional]] und Zubehör [[.:include:utility]] |
| * Datenkapseln [[.:include:any]] [[.:include:optional]] [[.:include:tuple]] [[.:include:variant]] |
| ==== Koroutinen und Nebenläufigkeit ==== |
| * [[.:Parallelverarbeitung]] |
| * [[.:include:coroutine]], [[.:include:generator]] |
| * nebenläufige Prozesse [[.:include:thread]] und verzögerte Berechnungen [[.:include:future]] |
| * Sperren [[.:include:atomic]] [[.:include:barrier]] [[.:include:condition_variable]] [[.:include:latch]] [[.:include:mutex]] [[.:include:semaphore]] [[.:include:shared_mutex]] [[.:include:stop_token]] |
| |