A task's promise_t type, with special logic for handling nested tasks. More...
#include "task.h"
Public Member Functions | |
~promise_t () | |
Destructor. More... | |
final_awaiter< R > | final_suspend () const noexcept |
Function called by the standard library when the coroutine reaches its last suspension point. More... | |
dpp::task< R > | get_return_object () noexcept |
Function called by the standard library when the coroutine is created. More... | |
void | return_value (R &&expr) noexcept(std::is_nothrow_move_constructible_v< R >) requires std |
Function called by the standard library when the coroutine co_returns a value. More... | |
Public Attributes | |
std::array< std::byte, sizeof(R)> | result_storage |
Stored return value of the coroutine. More... | |
A task's promise_t type, with special logic for handling nested tasks.
Implementation of task::promise_t for non-void return type.
R | Return type of the task |
|
inline |
Destructor.
Destroys the value if it was constructed.
References dpp::detail::task::done, and dpp::detail::task::promise_t< R >::result_storage.
|
inlinenoexcept |
Function called by the standard library when the coroutine reaches its last suspension point.
|
inlinenoexcept |
Function called by the standard library when the coroutine is created.
|
inlinenoexcept |
Function called by the standard library when the coroutine co_returns a value.
Stores the value internally to hand to the caller when it resumes.
expr | The value given to co_return |
Function called by the standard library when the coroutine co_returns a value.
Stores the value internally to hand to the caller when it resumes.
expr | The value given to co_return |
Function called by the standard library when the coroutine co_returns a value.
Stores the value internally to hand to the caller when it resumes.
expr | The value given to co_return |
References dpp::detail::task::promise_t< R >::result_storage.
std::array<std::byte, sizeof(R)> dpp::detail::task::promise_t< R >::result_storage |
Stored return value of the coroutine.
Referenced by dpp::detail::task::promise_t< R >::return_value(), and dpp::detail::task::promise_t< R >::~promise_t().