Spec-Zone.ru › C++

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); // Note that out is emitted here
    std::cout << "str_out = " << std::quoted(str_out.view()) << '\n';
}

Вывод:

test
str_out = ""

Отчёты об ошибках

Следующие отчёты об ошибках, изменяющие поведение, были применены задним числом к ранее опубликованным стандартам C++.

DR Применён к Поведение согласно опубликованной версии Правильное поведение
LWG 3867 C++20 оператор перемещающего присваивания имел спецификатор noexcept, но
оператор перемещающего присваивания std::basic_syncbuf не имеет его
noexcept удалён

См. также

(конструктор)
создаёт объект basic_osyncstream
(общедоступная функция-член)
(деструктор)
уничтожает basic_osyncstream и передаёт его внутренний буфер
(общедоступная функция-член)
emit
вызывает emit() для базового basic_syncbuf, чтобы передать его внутренние данные в конечное место назначения
(общедоступная функция-член)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/basic_osyncstream/operator%3D

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API