std::ios_base:: Init
|
class
Init
;
|
||
Этот класс используется для обеспечения корректной инициализации и уничтожения стандартных потоков C++ ( std::cin , std::cout и т.д.). Класс отслеживает количество созданных экземпляров и инициализирует потоки C++ при создании первого экземпляра, а также сбрасывает выходные потоки при уничтожении последнего экземпляра.
Заголовок
<iostream>
ведёт себя так, как если бы он определял (напрямую или косвенно) экземпляр
std::ios_base::Init
со статической продолжительностью хранения: это делает безопасным доступ к стандартным потокам ввода-вывода в конструкторах и деструкторах статических объектов с
упорядоченной инициализацией
(при условии, что
<iostream>
включён в единицу трансляции до определения этих объектов).
|
Каждый
модуль стандартной библиотеки C++
в
хостированной реализации
ведёт себя так, как если бы он содержал
интерфейсный модуль
, который определяет
неэкспортируемую
В результате определение этой переменной упорядочено появлением перед любым объявлением, следующим за точкой импорта модуля стандартной библиотеки C++. Существование такого определения ненаблюдаемо для программы, которая не ссылается ни на один из стандартных объектов iostream. |
(since C++23) |
Функции-члены
|
(constructor)
|
инициализирует стандартные потоки C++, если они еще не были созданы
(public member function) |
|
(destructor)
|
сбрасывает буферы стандартных потоков C++, если
*
this
является последним уничтожаемым экземпляром
(public member function) |
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 1123 | C++98 |
поведение конструктора и деструктора
зависит от статического члена данных только для экспозиции
init_cnt
|
удалена зависимость |
Смотрите также
|
читает из стандартного потока ввода C
stdin
(глобальный объект) |
|
|
записывает в стандартный поток вывода C
stdout
(глобальный объект) |
|
|
записывает в стандартный поток ошибок C
stderr
, небуферизованный
(глобальный объект) |
|
|
записывает в стандартный поток ошибок C
stderr
(глобальный объект) |