std:: basic_osyncstream
|
Определено в заголовочном файле
<syncstream>
|
||
|
template
<
class
CharT,
|
(начиная с C++20) | |
Шаблон класса
std::basic_osyncstream
является удобной обёрткой для
std::basic_syncbuf
. Он предоставляет механизм для синхронизации потоков, выполняющих запись в один и тот же поток.
Это может использоваться с именованной переменной:
а также с временным объектом:
std::osyncstream(std::cout) << "Привет, " << "Мир!" << '\n';
Гарантируется, что весь вывод, направляемый в один и тот же конечный буфер назначения (
std::cout
в приведённых выше примерах), будет свободен от состояний гонки данных и не будет перемежаться или искажаться каким-либо образом, при условии что каждая запись в этот конечный буфер назначения выполняется через (возможно, различные) экземпляры
std::basic_osyncstream
.
Типичная реализация
std::basic_osyncstream
содержит только один член: обёрнутый
std::basic_syncbuf
.
Диаграмма наследования
Предоставлены несколько typedef для распространённых символьных типов:
|
Определено в заголовке
<syncstream>
|
|
| Тип | Определение |
std::osyncstream
|
std :: basic_osyncstream < char > |
std::wosyncstream
|
std :: basic_osyncstream < wchar_t > |
Содержание |
Типы членов
| Тип члена | Определение |
char_type
|
CharT
|
traits_type
|
Traits
; программа является некорректной, если
Traits::char_type
не является
CharT
.
|
int_type
|
Traits::int_type
|
pos_type
|
Traits::pos_type
|
off_type
|
Traits::off_type
|
allocator_type
|
Allocator
|
streambuf_type
|
std:: basic_streambuf < CharT, Traits > |
syncbuf_type
|
std:: basic_syncbuf < CharT, Traits, Allocator > |
Функции-члены
создает объект
basic_osyncstream
(public member function) |
|
присваивает объект
basic_osyncstream
(public member function) |
|
уничтожает объект
basic_osyncstream
и отправляет его внутренний буфер
(public member function) |
|
получает указатель на базовый
basic_syncbuf
(public member function) |
|
|
получает указатель на конечный буфер потока назначения
(public member function) |
|
вызывает
emit()
на базовом
basic_syncbuf
для передачи внутренних данных в конечное назначение
(public member function) |
Унаследовано от std:: basic_ostream
Функции-члены
Форматированный вывод |
|
|
вставляет форматированные данные
(публичная функция-член
std::basic_ostream<CharT,Traits>
)
|
|
Неформатированный вывод |
|
|
вставляет символ
(публичная функция-член
std::basic_ostream<CharT,Traits>
)
|
|
|
вставляет блоки символов
(публичная функция-член
std::basic_ostream<CharT,Traits>
)
|
|
Позиционирование |
|
|
возвращает индикатор позиции вывода
(публичная функция-член
std::basic_ostream<CharT,Traits>
)
|
|
|
устанавливает индикатор позиции вывода
(публичная функция-член
std::basic_ostream<CharT,Traits>
)
|
|
Прочие функции |
|
|
синхронизирует с базовым устройством хранения
(публичная функция-член
std::basic_ostream<CharT,Traits>
)
|
|
Классы-члены
|
реализует базовую логику подготовки потока к операциям вывода
(публичный класс-член
std::basic_ostream<CharT,Traits>
)
|
Унаследовано от std:: basic_ios
Типы членов
| Тип члена | Определение |
char_type
|
CharT
|
traits_type
|
Traits
|
int_type
|
Traits::int_type
|
pos_type
|
Traits::pos_type
|
off_type
|
Traits::off_type
|
Функции-члены
Функции состояния |
|
|
проверяет, что ошибок не произошло, т.е. операции ввода-вывода доступны
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
проверяет, достигнут ли конец файла
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
проверяет, произошла ли ошибка
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
проверяет, произошла ли неустранимая ошибка
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
проверяет, произошла ли ошибка (синоним
fail()
)
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
проверяет, что ошибок не произошло (синоним
!
fail()
)
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
возвращает флаги состояния
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
устанавливает флаги состояния
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
изменяет флаги состояния
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
Форматирование |
|
|
копирует информацию о форматировании
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
управляет символом-заполнителем
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
Разное |
|
|
управляет маской исключений
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
устанавливает локаль
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
управляет связанным буфером потока
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
управляет связанным потоком
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
сужает символы
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
расширяет символы
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
Унаследовано от std:: ios_base
Функции-члены
Форматирование |
|
|
управляет флагами формата
(публичная функция-член
std::ios_base
)
|
|
|
устанавливает определённый флаг формата
(публичная функция-член
std::ios_base
)
|
|
|
сбрасывает определённый флаг формата
(публичная функция-член
std::ios_base
)
|
|
|
управляет точностью десятичных дробей в операциях с плавающей точкой
(публичная функция-член
std::ios_base
)
|
|
|
управляет шириной поля
(публичная функция-член
std::ios_base
)
|
|
Локали |
|
|
устанавливает локаль
(публичная функция-член
std::ios_base
)
|
|
|
возвращает текущую локаль
(публичная функция-член
std::ios_base
)
|
|
Внутренний расширяемый массив |
|
|
[static]
|
возвращает уникальное для программы целое число, безопасное для использования в качестве индекса для
pword()
и
iword()
(публичная статическая функция-член
std::ios_base
)
|
|
изменяет размер приватного хранилища при необходимости и предоставляет доступ к элементу
long
по заданному индексу
(публичная функция-член
std::ios_base
)
|
|
|
изменяет размер приватного хранилища при необходимости и предоставляет доступ к элементу
void
*
по заданному индексу
(публичная функция-член
std::ios_base
)
|
|
Прочее |
|
|
регистрирует функцию обратного вызова событий
(публичная функция-член
std::ios_base
)
|
|
|
[static]
|
устанавливает, являются ли библиотеки ввода-вывода C++ и C совместимыми
(публичная статическая функция-член
std::ios_base
)
|
Классы-члены |
|
|
исключение потока
(публичный класс-член
std::ios_base
)
|
|
|
инициализирует объекты стандартных потоков
(публичный класс-член
std::ios_base
)
|
|
Типы членов и константы |
|||||||||||||||||||||||||||||||||||||||
| Тип | Объяснение | ||||||||||||||||||||||||||||||||||||||
|
тип режима открытия потока
Также определены следующие константы:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
|
тип флагов форматирования
Также определены следующие константы:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
|
тип состояния потока
Также определены следующие константы:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
|
тип направления позиционирования
Также определены следующие константы:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
|
определяет тип события
(enum) |
|||||||||||||||||||||||||||||||||||||||
|
тип функции обратного вызова
(typedef) |
|||||||||||||||||||||||||||||||||||||||
Примечания
| Макрос тестирования возможностей | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_syncbuf
|
201803L
|
(C++20) |
Синхронизированный буферизованный ostream (
std::osyncstream
,
std::syncbuf
) и манипуляторы
|