Namespaces
Variants

C++ Standard Library headers

From cppreference.net
Standard library headers

L'interface de la bibliothèque standard C++ est définie par la collection suivante d'en-têtes.

Table des matières

En-têtes polyvalents

Utilitaires à usage général : contrôle de programme , allocation dynamique de mémoire , nombres aléatoires , tri et recherche
Politiques d'exécution prédéfinies pour les versions parallèles des algorithmes et composants de contrôle d'exécution (depuis C++26)

Bibliothèque de support du langage

Limites des types à virgule flottante
Limites des types entiers
(C++20)
Opérateur de comparaison à trois voies support
Bibliothèque de support des contrats
Bibliothèque de support des coroutines
Macro (et fonction) qui sauvegarde (et saute) vers un contexte d'exécution
Fonctions et constantes de macro pour la gestion des signaux
Gestion des listes d'arguments de longueur variable
Macros et typedefs standards
(C++11)
Types entiers de largeur fixe et limites des autres types
Utilitaires de gestion des exceptions
std::initializer_list modèle de classe
Interroger les propriétés des types arithmétiques
Utilitaires de gestion de mémoire bas niveau
Fournit les moyens d'obtenir l'emplacement du code source
(C++23)
Types à virgule flottante de largeur fixe
std::type_index
Utilitaires d'information de type à l'exécution
(C++20)
Fournit des macros pour vérifier l'état d'implémentation de la bibliothèque

Bibliothèque de concepts

(C++20)
Concepts fondamentaux de la bibliothèque

Bibliothèque de diagnostic

Macro compilé conditionnellement qui compare son argument à zéro
Macro contenant le dernier numéro d'erreur
Bibliothèque de débogage
Bibliothèque Stacktrace
Types d'exception standard
Définit std::error_code , un code d'erreur dépendant de la plateforme

Bibliothèque de gestion de la mémoire

Utilitaires de gestion de mémoire haut niveau
Allocateurs polymorphes et ressources mémoire
Classe d'allocateur imbriquée

Bibliothèque de métaprogrammation

(C++11)
Arithmétique rationnelle à la compilation
Utilitaires d'information de type à la compilation

Bibliothèque d'utilitaires généraux

(C++17)
std::any classe
(C++20)
Fonctions de manipulation de bits
std::bitset modèle de classe
(C++23)
std::expected modèle de classe
Objets fonction, Invocations de fonction, Opérations de liaison et Emballages de référence
(C++17)
std::optional modèle de classe
(C++11)
std::tuple modèle de classe
Divers composants utilitaires
(C++17)
std::variant modèle de classe

Bibliothèque de conteneurs

(C++11)
std::array conteneur
std::deque conteneur
(C++23)
std::flat_map et std::flat_multimap adaptateurs de conteneurs
(C++23)
std::flat_set et std::flat_multiset adaptateurs de conteneurs
std::forward_list conteneur
(C++26)
std::hive conteneur
std::inplace_vector conteneur
std::list conteneur
std::map et std::multimap conteneurs associatifs
(C++23)
std::mdspan vue
std::queue et std::priority_queue adaptateurs de conteneurs
std::set et std::multiset conteneurs associatifs
(C++20)
std::span vue
std::stack adaptateur de conteneur
std::unordered_map et std::unordered_multimap conteneurs associatifs non ordonnés
std::unordered_set et std::unordered_multiset conteneurs associatifs non ordonnés
std::vector conteneur

Bibliothèque des itérateurs

Itérateurs de plage

Bibliothèque Ranges

std::generator modèle de classe
(C++20)
Accès aux plages, primitives, exigences, utilitaires et adaptateurs

Bibliothèque d'algorithmes

Algorithmes qui opèrent sur des plages
Opérations numériques sur les valeurs dans les plages

Bibliothèque de chaînes

Diverses fonctions de manipulation de chaînes de caractères étroits
std::basic_string modèle de classe
std::basic_string_view modèle de classe

Bibliothèque de traitement de texte

Fonctions pour déterminer la catégorie des caractères étroits
(C++17)
std::to_chars et std::from_chars
Utilitaires de localisation C
(C++11) (déprécié en C++17) (supprimé en C++26)
Fonctionnalités de conversion Unicode
(C++11)
Fonctions de conversion de caractères Unicode de style C
Diverses fonctions de manipulation de chaînes larges et multioctets
Fonctions pour déterminer la catégorie des caractères larges
(C++20)
Bibliothèque de formatage incluant std::format
Utilitaires de localisation
(C++11)
Classes, algorithmes et itérateurs pour la prise en charge du traitement des expressions régulières
Identifications d'encodage de texte

Bibliothèque numérique

(C++11)
Fonctions d'accès à l'environnement des nombres à virgule flottante
Fonctions mathématiques communes
Type de nombre complexe
(C++26)
Algorithmes fondamentaux d'algèbre linéaire (BLAS)
(C++20)
Constantes mathématiques
(C++11)
Générateurs de nombres aléatoires et distributions
(C++26)
Types parallèles de données et opérations sur ces types
Classe pour représenter et manipuler des tableaux de valeurs

Bibliothèque de temps

(C++11)
Utilitaires temporels C++
Utilitaires de date/heure de style C

Bibliothèque d'entrée/sortie

Macros de formatage , intmax_t et uintmax_t opérations mathématiques et conversions
Fonctions d'entrée-sortie de style C
std::filesystem::path classe et fonctions de support
std::basic_fstream , std::basic_ifstream , std::basic_ofstream modèles de classe et typedefs
Fonctions auxiliaires pour contrôler le format des entrées et sorties
std::ios_base classe, std::basic_ios classe template et typedefs
Déclarations anticipées de toutes les classes de la bibliothèque d'entrée/sortie
Plusieurs objets de flux standard
std::basic_istream modèle de classe et typedefs
std::basic_ostream , std::basic_iostream modèles de classe et typedefs
(C++23)
Bibliothèque de sortie formatée incluant std::print
std::basic_spanstream , std::basic_ispanstream , std::basic_ospanstream modèles de classe et typedefs
std::basic_stringstream , std::basic_istringstream , std::basic_ostringstream modèles de classe et typedefs
std::basic_streambuf modèle de classe
(déprécié en C++98) (supprimé en C++26)
std::strstream , std::istrstream , std::ostrstream
std::basic_osyncstream , std::basic_syncbuf et typedefs

Bibliothèque de support de la concurrence

(C++11)
Bibliothèque d'opérations atomiques
(C++20)
Barrières
Conditions d'attente des threads
(C++11)
Primitives pour les calculs asynchrones
Pointeurs de risque
(C++20)
Verrous
(C++11)
Primitives d'exclusion mutuelle
(C++26)
Mécanismes de mise à jour par lecture-copie
Sémaphores
Primitives d'exclusion mutuelle partagée
Jetons d'arrêt pour std::jthread
(C++11)
std::thread classe et fonctions de support

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>
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.

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
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>
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
Définit les constantes de macro de compatibilité __alignas_is_defined et __alignof_is_defined
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