# std::basic_osyncstream<CharT,Traits,Allocator>::emit

From cppreference.com
< cpp‎ | io‎ | basic osyncstream

void emit(); |  |

Emits all buffered output and executes any pending flushes, by calling `emit()` on the underlying `std::basic_syncbuf`.

### Parameters

(none)

### Example

Run this code

    #include <syncstream>
    #include <iostream>
    int main()
    {
      {
        std::osyncstream bout(std::cout);
        bout << "Hello," << '\n'; // no flush
        bout.emit(); // characters transferred; cout not flushed
        bout << "World!" << std::endl; // flush noted; cout not flushed
        bout.emit(); // characters transferred; cout flushed
        bout << "Greetings." << '\n'; // no flush
      } // destructor calls emit(): characters transferred; cout not flushed

      // emit can be used for local exception-handling on the wrapped stream
      std::osyncstream bout(std::cout);
      bout << "Hello, " << "World!" << '\n';
      try {
        bout.emit();
      } catch (...) {
        // handle exceptions
      }
    }

Output:

    Hello,
    World!
    Greetings.
    Hello, World!

### See also

(destructor) | destroys the `basic_osyncstream` and emits its internal buffer (public member function)
emit | atomically transmits the entire internal buffer to the wrapped streambuf (public member function of `std::basic_syncbuf<CharT,Traits,Allocator>`)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/basic_osyncstream/emit&oldid=144225"