operator==, operator<=>(std::coroutine_handle)

Utilities library
Language support
Type support (basic types, RTTI)
Library feature-test macros (C++20)
Dynamic memory management
Program utilities
Coroutine support (C++20)
Variadic functions
Debugging support
Three-way comparison
General utilities
Date and time
Function objects
Formatting library (C++20)
Relational operators (deprecated in C++20)
Integer comparison functions
Swap and type operations
Common vocabulary types
Elementary string conversions

Coroutine support
Coroutine traits
Coroutine handle
No-op coroutines
Trivial awaitables
Range generators
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.


[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