std::basic_stringbuf<CharT,Traits,Allocator>::swap
void swap( basic_stringbuf& rhs ); |
(начиная с C++11) (до C++20) | |
void swap( basic_stringbuf& rhs ) noexcept(/* see below */); | (начиная с C++20) |
Меняет местами состояние и содержимое *this и rhs.
| Поведение не определено, если | (начиная с C++11) |
Параметры
| rhs | - | другой объект basic_stringbuf |
Возвращаемое значение
(нет)
Исключения
| Может выбрасывать исключения, определяемые реализацией. |
(начиная с C++11) (до C++20) |
noexcept спецификация: noexcept(std::allocator_traits<Allocator>::propagate_on_container_swap::value || std::allocator_traits<Allocator>::is_always_equal::value) | (начиная с C++20) |
Примечания
Эта функция вызывается автоматически при обмене объектами std::stringstream. Прямой вызов этой функции требуется редко.
Пример
#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";
}
Вывод:
Before swap: one = "one", two = "two". After swap: one = "two", two = "one".
См. также
создаёт объект basic_stringbuf (открытая функция-член) |
|
|
(C++11) | меняет местами два строковых потока (открытая функция-член std::basic_stringstream<CharT,Traits,Allocator>) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/basic_stringbuf/swap