- syncstream[meta header]
- function[meta id-type]
- std[meta namespace]
- basic_osyncstream[meta class]
- cpp20[meta cpp]
basic_osyncstream& operator=(basic_osyncstream&& rhs) noexcept;
ムーブ代入を行う。このとき、保留中の出力はラップされたストリームへ転送される。
保留中の出力を転送するためにemit()
を呼び出した後、ラップされたストリームであり、プライベートメンバであるstd::basic_syncbuf
を、rhs
のものからムーブ代入する。
*this
nullptr == rhs.get_wrapped()
はtrue
である。get_wrapped()
は、以前にrhs.get_wrapped()
によって返されていた値を返す。
投げない。emit()
から例外が投げられた場合、その例外は捕捉され無視される。
この代入演算子は、rhs
をそのラップされたストリームバッファから切り離し、rhs
を破棄しても出力が生成されないようにする。
#include <iostream>
#include <syncstream>
#include <utility>
int main()
{
std::osyncstream aout{std::cout};
aout << "Hello, ";
std::osyncstream bout = std::move(aout); // ここで "Hello, " は転送される。
bout << "World!";
}
Hello, World!
- C++20
- Clang: ??
- GCC: 11.1 [mark verified]
- Visual C++: 2019 update 10 [mark verified]