Namespaces
Variants

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

From cppreference.net
void emit ( ) ;

バッファリングされたすべての出力を送信し、保留中のフラッシュを実行します。これは基盤となる emit() を呼び出すことで実現され、 std::basic_syncbuf を介して処理されます。

パラメータ

(なし)

#include <iostream>
#include <syncstream>
int main()
{
    {
        std::osyncstream bout(std::cout);
        bout << "Hello," << '\n'; // フラッシュなし
        bout.emit(); // 文字転送完了; coutはフラッシュされない
        bout << "World!" << std::endl; // フラッシュ指定; coutはフラッシュされない
        bout.emit(); // 文字転送完了; coutがフラッシュされる
        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 を破棄し、内部バッファを出力する
(public member function)
内部バッファ全体をアトミックにラップされたstreambufに転送する
( std::basic_syncbuf<CharT,Traits,Allocator> のpublic member function)