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

< cpp‎ | io‎ | basic osyncstream

void emit(); |  |

通过在底层 `std::basic_syncbuf` 上调用 `emit()` ，发射所有缓冲的输出并执行任何未决的冲入。

### 参数

（无）

### 示例

    #include <syncstream>
    #include <iostream>
    int main()
    {
      {
        std::osyncstream bout(std::cout);
        std::bout << "Hello," << '\n'; // 不冲入
        std::bout.emit(); // 传输字符； cout 不冲入
        std::bout << "World!" << std::endl; // 提醒冲入； cout 不冲入
        std::bout.emit(); // 传输字符； cout 冲入
        std::bout << "Greetings." << '\n'; // 不冲入
      } // 析构函数调用 emit() ：传输字符； cout 不冲入

      // emit 能用于被包装流上的局部异常处理
      std::osyncstream bout(std::cout);
      bout << "Hello, " << "World!" << '\n';
      try {
        bout.emit();
      } catch (...) {
        // 处理异常
      }
    }

输出：

    Hello,
    World!
    Greetings.
    Hello, World!

### 参阅

(析构函数) | 销毁 basic_osyncstream 并发射其内部缓冲区 (公开成员函数)
emit | 原子地传输整个内部缓冲区给被包装 streambuf (`std::basic_syncbuf<CharT,Traits,Allocator>` 的公开成员函数)