std::coroutine_handle<Promise>::done
| Член других специализаций | ||
bool done() const; | (1) | (начиная с C++20) |
Член специализации std::coroutine_handle<std::noop_coroutine_promise>
| ||
constexpr bool done() const noexcept; | (2) | (начиная с C++20) |
Проверяет, приостановлена ли сопрограмма в конечной точке приостановки.
1) Возвращает
true, если сопрограмма, на которую ссылается *this, приостановлена в конечной точке приостановки, или false, если сопрограмма приостановлена в других точках приостановки. Поведение не определено, если *this не ссылается на приостановленную сопрограмму.
2) Всегда возвращает
false.Параметры
(нет)
Возвращаемое значение
1)
true, если сопрограмма приостановлена в конечной точке приостановки, false, если сопрограмма приостановлена в других точках приостановки.
2)
false
Примечания
Сопрограмма-пустышка никогда не считается приостановленной в конечной точке приостановки.
Сопрограмма с объектом promise p считается приостановленной в конечной точке приостановки только в том случае, если, пусть e будет результатом p.final_suspend(), e.await_ready() возвращает false. В частности, если p.final_suspend() возвращает std::suspend_never, то done() никогда не возвращает true.
Пример
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/coroutine/coroutine_handle/done