The class template std::basic_osyncstream
is a convenience wrapper for std::basic_syncbuf. It provides a mechanism to synchronize threads writing to the same stream.
It can be used with a named variable:
{ std::osyncstream synced_out(std::cout); // synchronized wrapper for std::cout synced_out << "Hello, "; synced_out << "World!"; synced_out << std::endl; // flush is noted, but not yet performed synced_out << "and more!\n"; } // characters are transferred and std::cout is flushed
as well as with a temporary:
std::osyncstream(std::cout) << "Hello, " << "World!" << '\n';
It provides the guarantee that all output made to the same final destination buffer (std::cout in the examples above) will be free of data races and will not be interleaved or garbled in any way, as long as every write to that final destination buffer is made through (possibly different) instances of std::basic_osyncstream
.
Typical implementation of std::basic_osyncstream
holds only one member: the wrapped std::basic_syncbuf.
Inheritance diagram
Several typedefs for common character types are provided:
Type Definitionstd::osyncstream
std::basic_osyncstream<char> std::wosyncstream
std::basic_osyncstream<wchar_t> [edit] Member types Member type Definition char_type
CharT
[edit] traits_type
Traits
; the program is ill-formed if Traits::char_type
is not CharT
.[edit] int_type
Traits::int_type
[edit] pos_type
Traits::pos_type
[edit] off_type
Traits::off_type
[edit] allocator_type
Allocator
streambuf_type
std::basic_streambuf<CharT, Traits> syncbuf_type
std::basic_syncbuf<CharT, Traits, Allocator> [edit] Member functions constructs a basic_osyncstream
object
basic_osyncstream
object
basic_osyncstream
and emits its internal buffer
basic_syncbuf
basic_syncbuf
to transmit its internal data to the final destination
std::basic_ostream<CharT,Traits>
) [edit] Unformatted output inserts a character
std::basic_ostream<CharT,Traits>
) [edit] inserts blocks of characters
std::basic_ostream<CharT,Traits>
) [edit] Positioning returns the output position indicator
std::basic_ostream<CharT,Traits>
) [edit] sets the output position indicator
std::basic_ostream<CharT,Traits>
) [edit] Miscellaneous synchronizes with the underlying storage device
std::basic_ostream<CharT,Traits>
) [edit] Member classes implements basic logic for preparation of the stream for output operations
std::basic_ostream<CharT,Traits>
) [edit] Inherited from std::basic_ios Member types Member type Definition char_type
CharT
traits_type
Traits
int_type
Traits::int_type
pos_type
Traits::pos_type
off_type
Traits::off_type
Member functions State functions checks if no error has occurred i.e. I/O operations are available
std::basic_ios<CharT,Traits>
) [edit] checks if end-of-file has been reached
std::basic_ios<CharT,Traits>
) [edit] checks if an error has occurred
std::basic_ios<CharT,Traits>
) [edit] checks if a non-recoverable error has occurred
std::basic_ios<CharT,Traits>
) [edit] checks if an error has occurred (synonym of fail())
std::basic_ios<CharT,Traits>
) [edit] checks if no error has occurred (synonym of !
fail())
std::basic_ios<CharT,Traits>
) [edit] returns state flags
std::basic_ios<CharT,Traits>
) [edit] sets state flags
std::basic_ios<CharT,Traits>
) [edit] modifies state flags
std::basic_ios<CharT,Traits>
) [edit] Formatting copies formatting information
std::basic_ios<CharT,Traits>
) [edit] manages the fill character
std::basic_ios<CharT,Traits>
) [edit] Miscellaneous manages exception mask
std::basic_ios<CharT,Traits>
) [edit] sets the locale
std::basic_ios<CharT,Traits>
) [edit] manages associated stream buffer
std::basic_ios<CharT,Traits>
) [edit] manages tied stream
std::basic_ios<CharT,Traits>
) [edit] narrows characters
std::basic_ios<CharT,Traits>
) [edit] widens characters
std::basic_ios<CharT,Traits>
) [edit] Inherited from std::ios_base Member functions Formatting manages format flags
std::ios_base
) [edit] sets specific format flag
std::ios_base
) [edit] clears specific format flag
std::ios_base
) [edit] manages decimal precision of floating point operations
std::ios_base
) [edit] manages field width
std::ios_base
) [edit] Locales sets locale
std::ios_base
) [edit] returns current locale
std::ios_base
) [edit] Internal extensible array returns a program-wide unique integer that is safe to use as index to pword() and iword()
std::ios_base
) [edit] resizes the private storage if necessary and access to the long element at the given index
std::ios_base
) [edit] resizes the private storage if necessary and access to the void* element at the given index
std::ios_base
) [edit] Miscellaneous registers event callback function
std::ios_base
) [edit] sets whether C++ and C I/O libraries are interoperable
std::ios_base
) [edit] Member classes stream exception
std::ios_base
) [edit] initializes standard stream objects
std::ios_base
) [edit] Member types and constants Type Explanation stream open mode type
The following constants are also defined:
The following constants are also defined:
The following constants are also defined:
The following constants are also defined:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4