std::jthread::swap
From cppreference.com
| void swap( std::jthread& other ) noexcept; |
(C++20以降) | |
2つの jthread オブジェクトの基になるハンドルを交換します。
目次 |
[編集] パラメータ
| その他 | - | 交換する jthread |
[編集] 戻り値
(なし)
[編集] 例
このコードを実行
#include <chrono> #include <iostream> #include <thread> void foo() { std::this_thread::sleep_for(std::chrono::seconds(1)); } void bar() { std::this_thread::sleep_for(std::chrono::seconds(1)); } int main() { std::jthread t1(foo); std::jthread t2(bar); std::cout << "thread 1 id: " << t1.get_id() << '\n' << "thread 2 id: " << t2.get_id() << '\n'; std::swap(t1, t2); std::cout << "after std::swap(t1, t2):" << '\n' << "thread 1 id: " << t1.get_id() << '\n' << "thread 2 id: " << t2.get_id() << '\n'; t1.swap(t2); std::cout << "after t1.swap(t2):" << '\n' << "thread 1 id: " << t1.get_id() << '\n' << "thread 2 id: " << t2.get_id() << '\n'; }
実行結果の例
thread 1 id: 140185268262656 thread 2 id: 140185259869952 after std::swap(t1, t2): thread 1 id: 140185259869952 thread 2 id: 140185268262656 after t1.swap(t2): thread 1 id: 140185268262656 thread 2 id: 140185259869952
[編集] 関連項目
| (C++20) |
std::swap アルゴリズムを特殊化する (function) |