C++ Standard Library headers
Die Schnittstelle der C++ Standardbibliothek ist durch die folgende Sammlung von Headern definiert.
C-Kompatibilitätsheader
Für einige der C-Standardbibliotheksheader der Form
xxx
.h
enthält die C++-Standardbibliothek sowohl einen gleichnamigen Header als auch einen weiteren Header der Form
c
xxx
(alle relevanten
c
xxx
-Header sind oben aufgeführt). Die vorgesehene Verwendung von Headern der Form
xxx
.h
dient ausschließlich der Interoperabilität. Es ist möglich, dass C++-Quelldateien einen dieser Header einbinden müssen, um valides ISO C zu sein. Quelldateien, die nicht gleichzeitig valides ISO C sein sollen, sollten keine der C-Header verwenden.
Mit Ausnahme von
complex.h
platziert jeder
xxx
.h
-Header, der in der C++-Standardbibliothek enthalten ist, jeden Namen im globalen Namensraum, den der entsprechende
c
xxx
-Header im
std
-Namensraum platziert hätte.
Diese Header dürfen dieselben Namen auch im
std
-Namespace deklarieren, und die entsprechenden
c
xxx
-Header dürfen dieselben Namen auch im globalen Namespace deklarieren: Das Inkludieren von
<cstdlib>
stellt definitiv
std::malloc
bereit und kann auch
::
malloc
bereitstellen. Das Inkludieren von
<stdlib.h>
stellt definitiv
::
malloc
bereit und kann auch
std::malloc
bereitstellen. Dies gilt sogar für Funktionen und Funktionsüberladungen, die nicht Teil der C-Standardbibliothek sind.
Hinweise:
xxx
.h
Header sind in C++98 als veraltet markiert und in C++23 wieder als nicht veraltet eingestuft. Diese Header werden für reinen C++-Code nicht empfohlen, sind jedoch nicht von zukünftiger Entfernung betroffen.
| Verhält sich gleich wie <cassert> | |
| Verhält sich so, als ob jeder Name aus <cctype> im globalen Namensraum platziert wird | |
| Verhält sich gleich wie <cerrno> | |
|
(C++11)
|
Verhält sich so, als ob jeder Name aus <cfenv> im globalen Namensraum platziert wird |
| Verhält sich gleich wie <cfloat> | |
|
(C++11)
|
Verhält sich so, als ob jeder Name aus <cinttypes> im globalen Namensraum platziert wird |
| Verhält sich gleich wie <climits> | |
| Verhält sich so, als ob jeder Name aus <clocale> im globalen Namensraum platziert wird | |
|
Verhält sich so, als ob jeder Name aus
<cmath>
im globalen Namensraum platziert wird,
außer den Namen der mathematischen Sonderfunktionen |
|
| Verhält sich so, als ob jeder Name aus <csetjmp> im globalen Namensraum platziert wird | |
| Verhält sich so, als ob jeder Name aus <csignal> im globalen Namensraum platziert wird | |
| Verhält sich so, als ob jeder Name aus <cstdarg> im globalen Namensraum platziert wird | |
|
Verhält sich so, als ob jeder Name aus
<cstddef>
im globalen Namensraum platziert wird,
außer den Namen von
std::byte
und zugehörigen Funktionen
|
|
|
(C++11)
|
Verhält sich so, als ob jeder Name aus <cstdint> im globalen Namensraum platziert wird |
| Verhält sich so, als ob jeder Name aus <cstdio> im globalen Namensraum platziert wird | |
| Verhält sich so, als ob jeder Name aus <cstdlib> im globalen Namensraum platziert wird | |
| Verhält sich so, als ob jeder Name aus <cstring> im globalen Namensraum platziert wird | |
| Verhält sich so, als ob jeder Name aus <ctime> im globalen Namensraum platziert wird | |
|
(C++11)
|
Verhält sich so, als ob jeder Name aus <cuchar> im globalen Namensraum platziert wird |
| Verhält sich so, als ob jeder Name aus <cwchar> im globalen Namensraum platziert wird | |
| Verhält sich so, als ob jeder Name aus <cwctype> im globalen Namensraum platziert wird |
Spezielle C-Kompatibilitätsheader
Die Header
<stdatomic.h>
,
<stdbit.h>
und
<stdckdint.h>
deklarieren Namen, die ebenfalls in der C-Standardbibliothek bereitgestellt werden. Der Header
<stdatomic.h>
definiert auch das
_Atomic
Makro, welches ein
Schlüsselwort
in C ist. Im Gegensatz zu anderen
<
xxx
.h>
Headern werden entsprechende
<cstdatomic>
,
<cstdbit>
und
<cstdckdint>
nicht bereitgestellt.
|
(C++23)
|
Definiert
_Atomic
und stellt entsprechende Komponenten der C-Standardbibliothek bereit
|
|
(C++26)
|
Stellt entsprechende Komponenten der C-Standardbibliothek bereit |
|
(C++26)
|
Stellt entsprechende Komponenten der C-Standardbibliothek bereit |
Leere C-Header
Die Header <complex.h> , <ccomplex> , <tgmath.h> und <ctgmath> enthalten keine Inhalte aus der C-Standardbibliothek, sondern binden lediglich andere Header aus der C++-Standardbibliothek ein.
|
(C++11)
(veraltet in C++17)
(entfernt in C++20)
|
Enthält lediglich den Header <complex> |
|
(C++11)
|
Enthält lediglich den Header <complex> |
|
(C++11)
(veraltet in C++17)
(entfernt in C++20)
|
Enthält lediglich die Header <complex> und <cmath> : Die Überladungen, die den Inhalten des C-Headers <tgmath.h> entsprechen, werden bereits von diesen Headern bereitgestellt |
|
(C++11)
|
Enthält lediglich die Header <complex> und <cmath> |
Bedeutungslose C-Header
Die Header <ciso646> , <cstdalign> und <cstdbool> sind in C++ bedeutungslos, da die Makros, die sie in C bereitstellen, in C++ Sprachschlüsselwörter sind.
|
(entfernt in C++20)
|
Leerer Header.
Die Makros, die in
iso646.h
in C erscheinen
sind
Schlüsselwörter in C++
|
|
(C++11)
(veraltet in C++17)
(entfernt in C++20)
|
Definiert
Kompatibilitätsmakrokonstanten
__alignas_is_defined
und
__alignof_is_defined
|
|
(C++11)
(veraltet in C++17)
(entfernt in C++20)
|
Definiert eine
Kompatibilitätsmakrokonstante
__bool_true_false_are_defined
|
| Hat keine Wirkung | |
|
(C++11)
|
Definiert
Kompatibilitätsmakrokonstanten
__alignas_is_defined
und
__alignof_is_defined
|
|
(C++11)
|
Definiert eine
Kompatibilitätsmakrokonstante
__bool_true_false_are_defined
|
Nicht unterstützte C-Header
Die C-Header
<stdatomic.h>
,
(bis C++23)
<stdnoreturn.h>
und
<threads.h>
sind in C++ nicht enthalten und haben keine
c
xxx
Äquivalente.
Experimentelle Bibliotheken
C++ TR's/TS's definieren ebenfalls mehrere Sammlungen von Headern.
Siehe auch
|
C-Dokumentation
für
Standardbibliothek-Header
|