std::coroutine_handle<Promise>::destroy

From cppreference.com
 
 
Utilities library
General utilities
Date and time
Function objects
Formatting library (C++20)
(C++11)
Relational operators (deprecated in C++20)
Integer comparison functions
(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++17)

Elementary string conversions
(C++17)
(C++17)
 
Coroutine support
Coroutine traits
Coroutine handle
No-op coroutines
Trivial awaitables
 
std::coroutine_handle
Member functions
Observers
Control
coroutine_handle::destroy
(C++20)
Promise access
Export/import
Non-member functions
(C++20)(C++20)
Helper classes
 
Member of other specializations
void destroy() const;
(1) (since C++20)
Member of specialization std::coroutine_handle<std::noop_coroutine_promise>
constexpr void destroy() const noexcept;
(2) (since C++20)
1) Destroys the coroutine state of the coroutine to which *this refers, or does nothing if the coroutine is a no-op coroutine.
2) Does nothing.

The behavior is undefined if destroying is needed and *this does not refer a suspended coroutine.

Parameters

(none)

Return value

(none)

Notes

N4861 (C++20 final working draft) requires that a call to destroy on a std::coroutine_handle<> converted from a std::noop_coroutine_handle is also no-op, which is unimplementable because a std::noop_coroutine_handle may refer to a coroutine that is not no-op, or may not refer to a coroutine. This is LWG issue 3460.

Example

See also

resumes execution of the coroutine
(public member function)