std::basic_osyncstream<CharT,Traits,Allocator>:: operator=
|
basic_osyncstream
&
operator
=
(
std::
basic_osyncstream
&&
other
)
;
|
(начиная с C++20) | |
Перемещающее присваивание синхронизированного выходного потока:
Перемещает присваивает обёрнутый
std::basic_syncbuf
из соответствующего члена
other
(после этого перемещающего присваивания,
other.
get_wrapped
(
)
возвращает нулевой указатель, а разрушение
other
не производит вывод; любая отложенная буферизованная выдача будет выполнена) и
перемещает присваивает
базовый
std::basic_ostream
(это обменивает все переменные состояния потока, кроме
rdbuf
между
*
this
и
other
)
Содержание |
Параметры
| other | - | другой синхронизированный выходной поток для перемещения |
Возвращаемое значение
* this
Пример
#include <iomanip> #include <iostream> #include <sstream> #include <syncstream> #include <utility> int main() { std::osyncstream out(std::cout); out << "test\n"; std::ostringstream str_out; std::osyncstream{str_out} = std::move(out); // Обратите внимание, что out здесь опустошается std::cout << "str_out = " << std::quoted(str_out.view()) << '\n'; }
Вывод:
test str_out = ""
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 3867 | C++20 |
the move assignment operator was
noexcept
, but
std::basic_syncbuf 's move assignment operator is not |
removed noexcept |
Смотрите также
создает объект
basic_osyncstream
(public member function) |
|
уничтожает объект
basic_osyncstream
и отправляет его внутренний буфер
(public member function) |
|
вызывает
emit()
на базовом объекте
basic_syncbuf
для передачи внутренних данных в конечное назначение
(public member function) |