30 Input/output library [input.output]

30.4 Standard iostream objects [iostream.objects]

30.4.2 Overview [iostream.objects.overview]

В этом разделе имя типа FILE относится к типу, FILE объявленному в .<cstdio>

Заголовок <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.