Namespaces
Variants

std::basic_stringbuf<CharT,Traits,Allocator>:: swap

From cppreference.net
void swap ( basic_stringbuf & rhs ) ;
(desde C++11)
(hasta C++20)
void swap ( basic_stringbuf & rhs ) noexcept ( /* ver más abajo */ ) ;
(desde C++20)

Intercambia el estado y el contenido de * this y rhs .

El comportamiento es indefinido si Allocator no se propaga en swap y los asignadores de * this y other son desiguales.

(since C++11)

Contenidos

Parámetros

rhs - otro basic_stringbuf

Valor de retorno

(ninguno)

Excepciones

Puede lanzar excepciones definidas por la implementación.

(since C++11)
(until C++20)
noexcept especificación:
noexcept ( std:: allocator_traits < Allocator > :: propagate_on_container_swap :: value
|| std:: allocator_traits < Allocator > :: is_always_equal :: value )
(since C++20)

Notas

Esta función se llama automáticamente al intercambiar std::stringstream objetos. Rara vez es necesario llamarla directamente.

Ejemplo

#include <iomanip>
#include <iostream>
#include <sstream>
#include <string>
int main()
{
    std::istringstream one("one");
    std::ostringstream two("two");
    std::cout << "Before swap: one = " << std::quoted(one.str())
              << ", two = " << std::quoted(two.str()) << ".\n";
    one.rdbuf()->swap(*two.rdbuf());
    std::cout << "After  swap: one = " << std::quoted(one.str())
              << ", two = " << std::quoted(two.str()) << ".\n";
}

Salida:

Before swap: one = "one", two = "two".
After  swap: one = "two", two = "one".

Véase también

construye un objeto basic_stringbuf
(función miembro pública)
(C++11)
intercambia dos flujos de cadena
(función miembro pública de std::basic_stringstream<CharT,Traits,Allocator> )