Namespaces
Variants

std::ios_base:: Init

From cppreference.net
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 std::ios_base::Init con inicialización ordenada .

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)