Difference between revisions of "cpp/coroutine/coroutine handle/operator cmp"
From cppreference.com
< cpp | coroutine | coroutine handle
m (synthesized operators) |
Andreas Krug (Talk | contribs) m ({{c}}) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | {{ | + | {{title|1=operator==, operator<=><small>(std::coroutine_handle)</small>}} |
{{cpp/coroutine/coroutine_handle/navbar}} | {{cpp/coroutine/coroutine_handle/navbar}} | ||
{{dcl begin}} | {{dcl begin}} | ||
− | {{dcl header | coroutine}} | + | {{dcl header|coroutine}} |
− | {{dcl | num=1 | since=c++20 | 1= | + | {{dcl|num=1|since=c++20|1= |
constexpr bool | constexpr bool | ||
− | operator==(std::coroutine_handle<> x, std::coroutine_handle<> y) noexcept; | + | operator==( std::coroutine_handle<> x, std::coroutine_handle<> y ) noexcept; |
}} | }} | ||
− | {{dcl | num=2 | since=c++20 | 1= | + | {{dcl|num=2|since=c++20|1= |
constexpr std::strong_ordering | constexpr std::strong_ordering | ||
− | operator<=>(std::coroutine_handle<> x, std::coroutine_handle<> y) noexcept; | + | operator<=>( std::coroutine_handle<> x, std::coroutine_handle<> y ) noexcept; |
}} | }} | ||
{{dcl end}} | {{dcl end}} | ||
− | Compares two {{c|std::coroutine_handle<>}} values {{ | + | Compares two {{c|std::coroutine_handle<>}} values {{|x}} and {{|y}} according to their underlying addresses. |
{{cpp/note synthesized compare}} | {{cpp/note synthesized compare}} | ||
Line 19: | Line 19: | ||
===Parameters=== | ===Parameters=== | ||
{{par begin}} | {{par begin}} | ||
− | {{par | x, y | {{c|std::coroutine_handle<>}} values to compare}} | + | {{par|x, y|{{c|std::coroutine_handle<>}} values to compare}} |
{{par end}} | {{par end}} | ||
===Return value=== | ===Return value=== | ||
− | @1@ {{c|1=x.address() == y.address()}} | + | @1@ {{c|1=x.address() == y.address()}} |
− | @2@ {{c|std::compare_three_way{}(x.address(), y.address())}} | + | @2@ {{c|std::compare_three_way{}(x.address(), y.address())}} |
===Notes=== | ===Notes=== |
Latest revision as of 01:31, 6 November 2023
Defined in header <coroutine>
|
||
constexpr bool operator==( std::coroutine_handle<> x, std::coroutine_handle<> y ) noexcept; |
(1) | (since C++20) |
constexpr std::strong_ordering operator<=>( std::coroutine_handle<> x, std::coroutine_handle<> y ) noexcept; |
(2) | (since C++20) |
Compares two std::coroutine_handle<> values x and y according to their underlying addresses.
The <
, <=
, >
, >=
, and !=
operators are synthesized from operator<=> and operator== respectively.
Contents |
[edit] Parameters
x, y | - | std::coroutine_handle<> values to compare |
[edit] Return value
1) x.address() == y.address()
2) std::compare_three_way{}(x.address(), y.address())
[edit] Notes
Although these operators are only overloaded for std::coroutine_handle<>, other specializations of std::coroutine_handle are also equality comparable and three-way comparable, because they are implicitly convertible to std::coroutine_handle<>.
[edit] Example
This section is incomplete Reason: no example |