Namespaces
Variants

std::basic_osyncstream<CharT,Traits,Allocator>:: operator=

From cppreference.net
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)