Namespaces
Variants
Views
Actions

std::coroutine_handle<Promise>::coroutine_handle

From cppreference.com
 
 
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
(C++26)
Three-way comparison
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
General utilities
Date and time
Function objects
Formatting library (C++20)
(C++11)
Relational operators (deprecated in C++20)
Integer comparison functions
(C++20)(C++20)(C++20)   
(C++20)
Swap and type operations
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Common vocabulary types
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Elementary string conversions
(C++17)
(C++17)

 
Coroutine support
Coroutine traits
Coroutine handle
No-op coroutines
Trivial awaitables
Range generators
(C++23)
 
std::coroutine_handle
Member functions
coroutine_handle::coroutine_handle
(C++20)
Conversion
Observers
Control
Promise access
Export/import
Non-member functions
(C++20)(C++20)
Helper classes
 
constexpr coroutine_handle() noexcept;
(1) (since C++20)
constexpr coroutine_handle( std::nullptr_t ) noexcept;
(2) (since C++20)
coroutine_handle( const coroutine_handle& other ) = default;
(3) (since C++20)
coroutine_handle( coroutine_handle&& other ) = default;
(4) (since C++20)

Creates a coroutine_handle that does not refer a coroutine, or copies a coroutine_handle.

1,2) Initializes the underlying address ptr to nullptr. After construction, address() returns nullptr, and the coroutine_handle does not refer a coroutine. These constructors are not declared for the specialization std::coroutine_handle<std::noop_coroutine_promise>.
3,4) Copies the underlying address. The copy constructor and move constructor are equivalent to implicitly declared ones.

[edit] Parameters

other - another coroutine_handle to copy

[edit] Notes

std::coroutine_handle<std::noop_coroutine_promise> is neither default constructible nor constructible from std::nullptr_t. std::noop_coroutine can be used to create a new std::coroutine_handle<std::noop_coroutine_promise>.

Static member functions from_promise and from_address can also create a coroutine_handle.

[edit] See also

[static] (C++20)
creates a coroutine_handle from the promise object of a coroutine
(public static member function) [edit]
[static] (C++20)
imports a coroutine from a pointer
(public static member function) [edit]
creates a coroutine handle that has no observable effects when resumed or destroyed
(function) [edit]