# std::coroutine_handle<Promise>::done

From cppreference.com
< cpp‎ | coroutine‎ | coroutine handle

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.

### Parameters

(none)

### 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

### 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.

### Example

| This section is incomplete Reason: no example

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/coroutine/coroutine_handle/done&oldid=177312"