On this page
operator==,!=,<,<=,>,>=,<=>(std::thread::id)
Defined in header <thread> |
||
---|---|---|
|
(1) | (since C++11) |
|
(2) | (since C++11) (until C++20) |
|
(3) | (since C++11) (until C++20) |
|
(4) | (since C++11) (until C++20) |
|
(5) | (since C++11) (until C++20) |
|
(6) | (since C++11) (until C++20) |
|
(7) | (since C++20) |
Compares two thread identifiers.
1,2) Checks whether
lhs
and rhs
represent either the same thread, or no thread.
3-7) Compares
lhs
and rhs
in an unspecified total ordering.
The |
(since C++20) |
Parameters
lhs, rhs | - | thread identifiers to compare |
Return value
1-6)
true
if the corresponding relation holds, false
otherwise.
7)
std::strong_ordering::less
if lhs
is less than rhs
in the total ordering; otherwise std::strong_ordering::greater
if rhs
is less than lhs
in the total ordering; otherwise std::strong_ordering::equal
.
Complexity
Constant.
Example
#include <cassert>
#include <chrono>
#include <iostream>
#include <thread>
int main()
{
auto work = [] { std::this_thread::sleep_for(std::chrono::seconds(1)); };
std::thread t1(work);
std::thread t2(work);
assert(t1.get_id() == t1.get_id() and
t2.get_id() == t2.get_id() and
t1.get_id() != t2.get_id());
if (const auto cmp = t1.get_id() <=> t2.get_id(); cmp < 0)
std::cout << "id1 < id2\n";
else
std::cout << "id1 > id2\n";
std::cout << "id1: " << t1.get_id() << "\n"
"id2: " << t2.get_id() << '\n';
t1.join();
t2.join();
}
Possible output:
id1 > id2
id1: 139741717640896
id2: 139741709248192
See also
C documentation for thrd_equal |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/thread/thread/id/operator_cmp