C++ Standard Library headers
L'interface de la bibliothèque standard C++ est définie par la collection suivante d'en-têtes.
En-têtes de compatibilité C
Pour certains en-têtes de la bibliothèque standard C de la forme
xxx
.h
, la bibliothèque standard C++ inclut à la fois un en-tête de même nom et un autre en-tête de la forme
c
xxx
(tous les en-têtes significatifs
c
xxx
sont listés ci-dessus). L'utilisation prévue des en-têtes de forme
xxx
.h
est uniquement pour l'interopérabilité. Il est possible que les fichiers source C++ aient besoin d'inclure l'un de ces en-têtes pour être valides en ISO C. Les fichiers source qui ne sont pas destinés à être également valides en ISO C ne devraient pas utiliser ces en-têtes C.
À l'exception de
complex.h
, chaque en-tête
xxx
.h
inclus dans la bibliothèque standard C++ place dans l'espace de noms global chaque nom que l'en-tête correspondant
c
xxx
aurait placé dans l'espace de noms
std
.
Ces en-têtes sont autorisés à déclarer également les mêmes noms dans l'espace de noms
std
, et les en-têtes correspondants
c
xxx
sont autorisés à déclarer également les mêmes noms dans l'espace de noms global : inclure
<cstdlib>
fournit définitivement
std::malloc
et peut également fournir
::
malloc
. Inclure
<stdlib.h>
fournit définitivement
::
malloc
et peut également fournir
std::malloc
. Cela s'applique même aux fonctions et surcharges de fonctions qui ne font pas partie de la bibliothèque standard C.
Notes :
xxx
.h
les en-têtes sont dépréciés en C++98 et réhabilités en C++23. Ces en-têtes sont déconseillés pour le code C++ pur, mais ne sont pas sujets à une suppression future.
| Se comporte de la même manière que <cassert> | |
| Se comporte comme si chaque nom de <cctype> était placé dans l'espace de noms global | |
| Se comporte de la même manière que <cerrno> | |
|
(C++11)
|
Se comporte comme si chaque nom de <cfenv> était placé dans l'espace de noms global |
| Se comporte de la même manière que <cfloat> | |
|
(C++11)
|
Se comporte comme si chaque nom de <cinttypes> était placé dans l'espace de noms global |
| Se comporte de la même manière que <climits> | |
| Se comporte comme si chaque nom de <clocale> était placé dans l'espace de noms global | |
|
Se comporte comme si chaque nom de
<cmath>
était placé dans l'espace de noms global,
sauf pour les noms des fonctions mathématiques spéciales |
|
| Se comporte comme si chaque nom de <csetjmp> était placé dans l'espace de noms global | |
| Se comporte comme si chaque nom de <csignal> était placé dans l'espace de noms global | |
| Se comporte comme si chaque nom de <cstdarg> était placé dans l'espace de noms global | |
|
Se comporte comme si chaque nom de
<cstddef>
était placé dans l'espace de noms global,
sauf pour les noms du
std::byte
et des fonctions associées
|
|
|
(C++11)
|
Se comporte comme si chaque nom de <cstdint> était placé dans l'espace de noms global |
| Se comporte comme si chaque nom de <cstdio> était placé dans l'espace de noms global | |
| Se comporte comme si chaque nom de <cstdlib> était placé dans l'espace de noms global | |
| Se comporte comme si chaque nom de <cstring> était placé dans l'espace de noms global | |
| Se comporte comme si chaque nom de <ctime> était placé dans l'espace de noms global | |
|
(C++11)
|
Se comporte comme si chaque nom de <cuchar> était placé dans l'espace de noms global |
| Se comporte comme si chaque nom de <cwchar> était placé dans l'espace de noms global | |
| Se comporte comme si chaque nom de <cwctype> était placé dans l'espace de noms global |
En-têtes spéciaux de compatibilité C
Les en-têtes
<stdatomic.h>
,
<stdbit.h>
, et
<stdckdint.h>
déclarent des noms qui sont également fournis dans la bibliothèque standard C. L'en-tête
<stdatomic.h>
définit également la macro
_Atomic
qui est un
mot-clé
en C. Contrairement aux autres en-têtes
<
xxx
.h>
, les versions correspondantes
<cstdatomic>
,
<cstdbit>
, et
<cstdckdint>
ne sont pas fournies.
|
(C++23)
|
Définit
_Atomic
et fournit les composants correspondants dans la bibliothèque standard C
|
|
(C++26)
|
Fournit les composants correspondants dans la bibliothèque standard C |
|
(C++26)
|
Fournit les composants correspondants dans la bibliothèque standard C |
En-têtes C vides
Les en-têtes <complex.h> , <ccomplex> , <tgmath.h> , et <ctgmath> ne contiennent aucun contenu de la bibliothèque standard C et incluent simplement d'autres en-têtes de la bibliothèque standard C++.
|
(C++11)
(obsolète en C++17)
(supprimé en C++20)
|
Inclut simplement l'en-tête <complex> |
|
(C++11)
|
Inclut simplement l'en-tête <complex> |
|
(C++11)
(obsolète en C++17)
(supprimé en C++20)
|
Inclut simplement les en-têtes <complex> et <cmath> : les surcharges équivalentes au contenu de l'en-tête C <tgmath.h> sont déjà fournies par ces en-têtes |
|
(C++11)
|
Inclut simplement les en-têtes <complex> et <cmath> |
En-têtes C sans signification
Les en-têtes <ciso646> , <cstdalign> , et <cstdbool> sont dénués de sens en C++ car les macros qu'ils fournissent en C sont des mots-clés du langage en C++.
|
(supprimé en C++20)
|
En-tête vide.
Les macros qui apparaissent dans
iso646.h
en C
sont
des mots-clés en C++
|
|
(C++11)
(obsolète en C++17)
(supprimé en C++20)
|
Définit
les constantes de macro de compatibilité
__alignas_is_defined
et
__alignof_is_defined
|
|
(C++11)
(obsolète en C++17)
(supprimé en C++20)
|
Définit une
constante de macro de compatibilité
__bool_true_false_are_defined
|
| N'a aucun effet | |
|
(C++11)
|
Définit
les constantes de macro de compatibilité
__alignas_is_defined
et
__alignof_is_defined
|
|
(C++11)
|
Définit une
constante de macro de compatibilité
__bool_true_false_are_defined
|
En-têtes C non pris en charge
Les en-têtes C
<stdatomic.h>
,
(jusqu'à C++23)
<stdnoreturn.h>
, et
<threads.h>
ne sont pas inclus dans C++ et n'ont pas
d'équivalents
c
xxx
.
Bibliothèques expérimentales
TR/TS du C++ définissent également plusieurs collections d'en-têtes.
Voir aussi
|
Documentation C
pour
les en-têtes de la bibliothèque standard
|