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() на базовом 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