std::basic_stringbuf<CharT,Traits,Allocator>::swap
From cppreference.com
< cpp | io | basic stringbuf
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 | (since C++11) |
Contents |
[edit]Parameters
rhs | - | another basic_stringbuf |
[edit]Return value
(none)
[edit]Exceptions
May throw implementation-defined exceptions. | (since C++11) (until C++20) |
noexcept specification: noexcept(std::allocator_traits<Allocator>::propagate_on_container_swap::value ||std::allocator_traits<Allocator>::is_always_equal::value) | (since C++20) |
[edit]Notes
This function is called automatically when swapping std::stringstream objects. It is rarely necessary to call it directly.
[edit]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".
[edit]See also
constructs a basic_stringbuf object (public member function) | |
(C++11) | swaps two string streams (public member function of std::basic_stringstream<CharT,Traits,Allocator> ) |