Namespaces
Variants

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

From cppreference.net
protected :
void swap ( basic_istream & rhs ) ;
(desde C++11)

Llama a basic_ios :: swap ( rhs ) para intercambiar todos los miembros de datos de la clase base excepto rdbuf() , e intercambia los valores de los contadores gcount() entre * this y rhs . Esta función de intercambio está protegida: es llamada por las funciones de intercambio de las clases de flujo de entrada intercambiables std::basic_ifstream y std::basic_istringstream , que saben cómo intercambiar correctamente los búferes de flujo asociados.

Parámetros

rhs - objeto basic_istream diferente del mismo tipo para intercambiar

Ejemplo

#include <iostream>
#include <sstream>
#include <utility>
int main()
{
    std::istringstream s1("hello");
    std::istringstream s2("bye");
    s1.swap(s2); // OK, istringstream tiene un swap() público
    std::swap(s1, s2); // OK, llama a s1.swap(s2)
//  std::cin.swap(s2); // ERROR: swap es un miembro protegido
    std::cout << s1.rdbuf() << '\n';
}

Salida:

hello