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() для базового 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