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

< cpp‎ | io‎ | basic ostream

protected: void swap(basic_ostream& rhs); |  | (C++11 起)

调用 basic_ios::swap(rhs) 交换 *this 和 `rhs` 间的基类数据成员，除了 rdbuf() 。此 swap 函数受保护：它为可交换输出流类 std::basic_ofstream 和 std::basic_ostringstream 的 swap 函数所调用，这些函数知晓如何正确交换关联的流缓冲。

### 参数

rhs | - | 要与之交换的同类型 basic_ostream

### 示例

    #include <sstream>
    #include <iostream>
    #include <utility>
    int main()
    {
        std::ostringstream s1("hello");
        std::ostringstream s2("bye");

        s1.swap(s2); // OK ： ostringstream 拥有公开 swap()
        std::swap(s1, s2); // OK ：调用 s1.swap(s2)

    //  std::cout.swap(s2); // 错误： swap 是受保护成员

        std::cout << s1.str() << '\n';
    }

输出：

    hello