template<typename... Args>
struct dpp::detail::job::promise< Args >
Coroutine promise type for a job.
template<typename... Args>
template<typename T >
Function that will wrap every co_await inside of the job.
job is extremely efficient as a coroutine but this comes with drawbacks : It cannot be co_awaited, which means the second it co_awaits something, the program jumps back to the calling function, which continues executing. At this point, if the function returns, every object declared in the function including its parameters are destroyed, which causes dangling references. This is exactly the same problem as references in lambdas : https://dpp.dev/lambdas-and-locals.html.
If you must pass a reference, pass it as a pointer or with std::ref, but you must fully understand the reason behind this warning, and what to avoid. If you prefer a safer type, use coroutine for synchronous execution, or task for parallel tasks, and co_await them.