std::coroutine_handle<Promise>::done
From cppreference.com
< cpp | coroutine | coroutine handle
C++
Utilities library
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Coroutine support
| Coroutine traits | ||||
(C++20) | ||||
| Coroutine handle | ||||
(C++20) | ||||
| No-op coroutines | ||||
(C++20) | ||||
(C++20) | ||||
| Trivial awaitables | ||||
(C++20) | ||||
(C++20) | ||||
| Range generators | ||||
(C++23) |
std::coroutine_handle
| Member functions | ||||
| Conversion | ||||
| Observers | ||||
coroutine_handle::done | ||||
| Control | ||||
| Promise access | ||||
| Export/import | ||||
| Non-member functions | ||||
| Helper classes | ||||
| Member of other specializations |
||
| bool done() const; |
(1) | (since C++20) |
| Member of specialization std::coroutine_handle<std::noop_coroutine_promise> |
||
| constexpr bool done() const noexcept; |
(2) | (since C++20) |
Checks if a suspended coroutine is suspended at its final suspend point.
1) Returns true if the coroutine to which *this refers is suspended at its final suspend point, or false if the coroutine is suspended at other suspend points. The behavior is undefined if *this does not refer to a suspended coroutine.
2) Always returns false.
Contents |
[edit] Parameters
(none)
[edit] Return value
1) true if the coroutine is suspended at its final suspend point, false if the coroutine is suspended at other suspend points.
2) false
[edit] Notes
A no-op coroutine is never considered to be suspended at its final suspend point.
A coroutine with promise object p is considered to be suspended at its final suspend point only if, let e be the result of p.final_suspend(), e.await_ready() returns false. In particular, if p.final_suspend() returns std::suspend_never, then done() never returns true.
[edit] Example
| This section is incomplete Reason: no example |