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() возвращает указатель null, а уничтожение 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's оператор перемещения присваивания не является таковым
удален 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/w/cpp/io/basic_osyncstream/operator%3D

Spec-Zone.ru

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