Namespaces
Variants

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

From cppreference.net
protected :
void swap ( basic_istream & rhs ) ;
(начиная с C++11)

Вызывает basic_ios :: swap ( rhs ) для обмена всеми членами данных базового класса, за исключением rdbuf() , и обменивает значения счетчиков gcount() между * this и rhs . Эта функция обмена защищена: она вызывается функциями обмена классов swappable входных потоков std::basic_ifstream и std::basic_istringstream , которые знают, как правильно обменивать связанные буферы потоков.

Параметры

rhs - другой basic_istream объект того же типа для обмена

Пример

#include <iostream>
#include <sstream>
#include <utility>
int main()
{
    std::istringstream s1("hello");
    std::istringstream s2("bye");
    s1.swap(s2); // OK, istringstream имеет публичный swap()
    std::swap(s1, s2); // OK, вызывает s1.swap(s2)
//  std::cin.swap(s2); // ERROR: swap является защищенным членом
    std::cout << s1.rdbuf() << '\n';
}

Вывод:

hello