Заголовок <iostream> объявляет объекты, которые связывают объекты со стандартными потоками C, предусмотренными функциями, объявленными в <cstdio> ([c.files]), и включает все заголовки, необходимые для использования этих объектов.
Объекты конструируются, и ассоциации устанавливаются в некоторый момент до или во время первогоios_base::Init конструирования объекта класса , и в любом случае до начала выполнения тела main .288 Объекты не уничтожаются во время выполнения программы.289 Результаты включения <iostream> в блок трансляции должны быть такими, как если бы он был <iostream> определен как экземпляр ios_base::Init со статической продолжительностью хранения.
Операции смешивания для соответствующих потоков с широкими и узкими символами следует той же семантике, что и смешивание таких операций с FILEs, как указано в стандартной библиотеке C.
Одновременный доступ к синхронизированным ([ios.members.static]) стандартного объекта iostream отформатирован и неотформатированная input и output функции или стандартный поток С несколькими потоками , не должно приводить к data race. [ Note: Пользователи должны по-прежнему синхронизировать одновременное использование этих объектов и потоков несколькими потоками, если они хотят избежать чередования символов. ] — end note
См. Также: ISO C 7.21.2.
Если это возможно, реализациям рекомендуется инициализировать объекты раньше, чем требуется.
Конструкторы и деструкторы для статических объектов могут обращаться к этим объектам для чтения ввода stdin или записи вывода в stdout или stderr.