Namespaces
Variants

std::basic_ostream<CharT,Traits>:: swap

From cppreference.net
protected :
void swap ( basic_ostream & rhs ) ;
(C++11以降)

basic_ios :: swap ( rhs ) を呼び出して、基底クラスのデータメンバ( rdbuf ( ) を除く)を * this rhs の間で交換します。このswap関数はprotectedで、ストリームバッファを正しく交換する方法を知っているスワップ可能な出力ストリームクラス std::basic_ofstream および std::basic_ostringstream のswap関数によって呼び出されます。

パラメータ

rhs - 交換対象の同じ型のbasic_ostream

#include <iostream>
#include <sstream>
#include <utility>
int main()
{
    std::ostringstream s1("hello");
    std::ostringstream s2("bye");
    s1.swap(s2); // OK: ostringstreamはpublic swap()を持つ
    std::swap(s1, s2); // OK: s1.swap(s2)を呼び出す
//  std::cout.swap(s2); // エラー: swapはprotectedメンバ
    std::cout << s1.str() << '\n';
}

出力:

hello