1#ifndef NEFORCE_CORE_ASYNC_CO_SPAWN_HPP__
2#define NEFORCE_CORE_ASYNC_CO_SPAWN_HPP__
13#ifdef NEFORCE_STANDARD_20
15NEFORCE_BEGIN_NAMESPACE__
35 auto final_suspend()
noexcept {
36 struct final_awaiter {
37 bool await_ready()
noexcept {
return false; }
39 void await_resume()
noexcept {}
41 return final_awaiter{};
43 void return_void()
noexcept {}
47 auto await_transform(U&& u) {
72template <
typename Executor,
typename Func>
75 auto task = inner(func);
76 exec.execute([h =
task.handle_]()
mutable { h.resume(); });
81NEFORCE_END_NAMESPACE__
constexpr T && forward(remove_reference_t< T > &x) noexcept
完美转发左值
std::coroutine_handle< Promise > coroutine_handle
协程句柄
void co_spawn(Executor &&exec, Func func)
在 executor 上启动协程
exception_ptr current_exception() noexcept
获取当前异常