namespace std {
template<class charT, class traits, class Allocator>
void swap(basic_syncbuf<charT, traits, Allocator>& a,
basic_syncbuf<charT, traits, Allocator>& b) noexcept;
}
概要
2つのbasic_syncbuf
オブジェクトを入れ替える。
効果
a.swap(b);
と等価である。
戻り値
なし
例外
投げない
例
#include <iostream>
#include <syncstream>
int main()
{
std::osyncstream aout{std::cout};
aout << "Hello, ";
std::osyncstream bout;
bout << "World!";
std::swap(*aout.rdbuf(), *bout.rdbuf());
bout.emit(); // "Hello, " が転送される
aout.emit(); // "World!" が転送される
}
xxxxxxxxxx
#include <iostream>
#include <syncstream>
int main()
{
std::osyncstream aout{std::cout};
aout << "Hello, ";
std::osyncstream bout;
bout << "World!";
std::swap(*aout.rdbuf(), *bout.rdbuf());
bout.emit(); // "Hello, " が転送される
aout.emit(); // "World!" が転送される
}
出力
Hello, World!
バージョン
言語
- C++20
処理系
- Clang: ??
- GCC: 11.1 ✅
- Visual C++: 2019 update 10 ✅