std::ios_base:: Init
|
class
Init
;
|
||
Esta clase se utiliza para garantizar que los flujos predeterminados de C++ ( std::cin , std::cout , etc.) estén correctamente inicializados y destruidos. La clase rastrea cuántas instancias de ella se crean e inicializa los flujos de C++ cuando se construye la primera instancia, así como vacía los flujos de salida cuando se destruye la última instancia.
El encabezado
<iostream>
se comporta como si definiera (directa o indirectamente) una instancia de
std::ios_base::Init
con duración de almacenamiento estático: esto hace que sea seguro acceder a los flujos de E/S estándar en los constructores y destructores de objetos estáticos con
inicialización ordenada
(siempre que
<iostream>
esté incluido en la unidad de traducción antes de que estos objetos fueran definidos).
|
Cada
módulo de biblioteca C++
en una
implementación hospedada
se comporta como si contuviera una
unidad de interfaz
que define una variable
no exportada
Como resultado, la definición de esa variable está ordenada por aparición antes de cualquier declaración que siga al punto de importación de un módulo de biblioteca C++. La existencia de tal definición no es observable por un programa que no haga referencia a ninguno de los objetos estándar de iostream. |
(since C++23) |
Funciones miembro
|
(constructor)
|
inicializa los flujos predeterminados de C++ si aún no han sido creados
(función miembro pública) |
|
(destructor)
|
vacía los flujos predeterminados de C++ si
*
this
es la última instancia en ser destruida
(función miembro pública) |
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 1123 | C++98 |
los comportamientos del constructor y el destructor
dependen de un miembro de datos estático solo para exposición
init_cnt
|
se eliminó la dependencia |
Véase también
|
lee del flujo de entrada estándar de C
stdin
(objeto global) |
|
|
escribe al flujo de salida estándar de C
stdout
(objeto global) |
|
|
escribe al flujo de error estándar de C
stderr
, sin búfer
(objeto global) |
|
|
escribe al flujo de error estándar de C
stderr
(objeto global) |