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
unitbufflag in the stream str as if by calling str.setf(std::ios_base::unitbuf).Disables the
unitbufflag 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] |