std::ios_base:: Init
|
class
Init
;
|
||
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
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) |