swap(std::jthread)
Von cppreference.com
| friend void swap( jthread& lhs, jthread& rhs ) noexcept; |
(seit C++20) | |
Überlädt den std::swap Algorithmus für std::jthread. Vertauscht den Zustand von lhs mit dem von rhs. Ruft effektiv lhs.swap(rhs) auf. Diese Funktion ist für gewöhnliche nicht qualifizierte oder qualifizierte Lookups nicht sichtbar und kann nur durch argumentabhängige Lookups gefunden werden, wenn std::jthread eine zugehörige Klasse der Argumente ist.
Inhalt |
[bearbeiten] Parameter
| lhs, rhs | - | jthreads, deren Zustände vertauscht werden sollen |
[bearbeiten] Rückgabewert
(keine)
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#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() { using std::swap; std::jthread t1(foo); std::jthread t2(bar); std::cout << "thread 1 id: " << t1.get_id() << '\n' << "thread 2 id: " << t2.get_id() << '\n'; 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'; }
Mögliche Ausgabe
thread 1 id: 1892 thread 2 id: 2584 after std::swap(t1, t2): thread 1 id: 2584 thread 2 id: 1892 after t1.swap(t2): thread 1 id: 1892 thread 2 id: 2584
[bearbeiten] Siehe auch
| vertauscht zwei jthread-Objekte (öffentliche Mitgliedsfunktion) |