swap(std::jthread)(3)
π NAME π
okay so bestie, this is the swap(std::jthread) page from the C++ Standard Libary manual β¨ and the name section is literally swap(std::jthread) β swap(std::jthread) π
π¦ Synopsis π¦
friend void swap( jthread& lhs, jthread& rhs ) noexcept; (since
C++20)
okay so what it do: it overloads the std::swap algorithm for std::jthread π. It exchanges the state of lhs with that of rhs. It effectively calls lhs.swap(rhs). That's the whole vibe.
Now the important little caveat, bestie: this function is not visible to ordinary unqualified or qualified lookup π«π. It can only be found by argument-dependent lookup when std::jthread is an associated class of the arguments. iykyk.
π Parameters π
lhs,rhsβ thejthreads whose states we're swapping π
π«Ά Return value π«Ά
(none) β literally no return value, bestie. Nothing comes back. Periodt. β¨
π Example π
Run this code, bestie β it's the whole example, no edits:
// Run this code
#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';
}
β Possible output β
Here's the possible output, bestie:
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
π See also π
swapβ swaps twojthreadobjects (public member function) β¨
and that's the whole swap(std::jthread)(3) page, sourced from http://cppreference.com, version/date 2024.06.10 β bye bestie, go swap those jthreads π
π
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms