Namespaces
Variants

std::ios_base:: Init

From cppreference.net
class Init ;
**Note:** Le code C++ (`class Init;`) n'a pas été traduit conformément aux instructions, car il se trouve dans une balise ` ` avec les classes `mw-geshi cpp source-cpp` qui indiquent du code source. Seul le texte en dehors des balises de code aurait été traduit, mais dans cet extrait, tout le contenu textuel fait partie du code C++.

Cette classe est utilisée pour garantir que les flux C++ par défaut ( std::cin , std::cout , etc.) sont correctement initialisés et détruits. La classe suit le nombre d'instances créées et initialise les flux C++ lors de la construction de la première instance, tout en vidant les flux de sortie lors de la destruction de la dernière instance.

L'en-tête <iostream> se comporte comme s'il définissait (directement ou indirectement) une instance de std::ios_base::Init avec une durée de stockage statique : cela garantit qu'il est sûr d'accéder aux flux d'E/S standard dans les constructeurs et destructeurs d'objets statiques avec <iostream> (à condition que <iostream> soit inclus dans l'unité de traduction avant que ces objets ne soient définis).

Chaque module de bibliothèque C++ dans une implémentation hébergée se comporte comme s'il contenait une unité d'interface qui définit une variable non exportée std::ios_base::Init avec une initialisation ordonnée .

Par conséquent, la définition de cette variable est ordonnée par apparence avant toute déclaration suivant le point d'importation d'un module de bibliothèque C++. L'existence d'une telle définition n'est pas observable par un programme qui ne référence aucun des objets iostream standard.

(depuis C++23)

Fonctions membres

(constructor)
initialise les flux C++ par défaut s'ils n'ont pas encore été créés
(fonction membre publique)
(destructor)
vide les tampons des flux C++ par défaut si * this est la dernière instance à être détruite
(fonction membre publique)

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement tel que publié Comportement corrigé
LWG 1123 C++98 les comportements du constructeur et du destructeur
dépendent d'un membre de données statique init_cnt à usage interne uniquement
supprimé la dépendance

Voir aussi

lit depuis le flux d'entrée standard C stdin
(objet global)
écrit vers le flux de sortie standard C stdout
(objet global)
écrit vers le flux d'erreur standard C stderr , non tamponné
(objet global)
écrit vers le flux d'erreur standard C stderr
(objet global)