std::unitbuf, std::nounitbuf - cppreference.com (original) (raw)
| Defined in header | | | | --------------------------------------------------------------------------------------------- | --- | | | std::ios_base& unitbuf( std::ios_base& str ); | (1) | | | std::ios_base& nounitbuf( std::ios_base& str ); | (2) | |
Enables or disables automatic flushing of the output stream after any output operation. Has no effect on input.
Enables the
unitbuf
flag in the stream str as if by calling str.setf(std::ios_base::unitbuf).Disables the
unitbuf
flag in the stream str as if by calling str.unsetf(std::ios_base::unitbuf).
This is an I/O manipulator, it may be called with an expression such as out << std::unitbuf for any out
of type std::basic_ostream or with an expression such as in >> std::unitbuf for any in
of type std::basic_istream.
[edit] Notes
Flushing is performed in the destructor of the std::basic_ostream::sentry object, which calls str.rdbuf()->pubsync() if str.flags() & std::ios_base::unitbuf is true.
The standard output objects std::cerr and std::wcerr have their unitbuf
bit set by default.
[edit] Parameters
str | - | reference to I/O stream |
---|
[edit] Return value
str (reference to the stream after manipulation).
[edit] Example
Without std::unitbuf
or another explicit flush, the output is the same, but does not appear in real time.
Output:
571ms ... 1146ms ... 1722ms ... 2294ms ... 2865ms ...
[edit] See also
| | flushes the output stream (function template) [edit] | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | | outputs '\n' and flushes the output stream (function template) [edit] |