std::basic_stringbuf::swap(3)

NAME
std::basic_stringbuf::swap - std::basic_stringbuf::swap

Synopsis
   void swap( basic_stringbuf& rhs ); (since C++11)
                        (until C++20)
   void swap( basic_stringbuf& rhs ) noexcept(/* see below */); (since C++20)
   Swaps the state and the contents of *this and rhs.
   The behavior is undefined if Allocator does not propagate on swap and (since C++11)
   the allocators of *this and other are unequal.

Parameters
   rhs - another basic_stringbuf

Return value
   (none)

Exceptions
                        (since
   May throw implementation-defined exceptions. C++11)
                        (until
                        C++20)
   noexcept specification: (since
   noexcept(std::allocator_traits<Allocator>::propagate_on_container_swap::value C++20)
   || std::allocator_traits<Allocator>::is_always_equal::value)

Notes
   This function is called automatically when swapping std::stringstream objects. It is
   rarely necessary to call it directly.

Example
// Run this code
 #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";
 }

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

See also
   constructor constructs a basic_stringbuf object
                 (public member function)
   swap swaps two string streams
   (C++11) (public member function of
                 std::basic_stringstream<CharT,Traits,Allocator>)

Category:
     * conditionally noexcept