Scroll to navigation

std::coroutine_handle::coroutine_handle(3) C++ Standard Libary std::coroutine_handle::coroutine_handle(3)

NAME

std::coroutine_handle::coroutine_handle - std::coroutine_handle::coroutine_handle

Synopsis


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.

Parameters


other - another coroutine_handle to copy

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.

See also


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

2024.06.10 http://cppreference.com