#include #include namespace zt{ template struct Task:std::coroutine_handle{ struct promise_type; struct promise_type{ std::promise promise_; void return_value(T value){promise_.set_value(value);} auto initial_suspend(){ return std::suspend_always{}; } auto final_suspend()noexcept{ return std::suspend_always{}; } auto get_return_object(){ return Task::from_promise(*this); } void unhandled_exception(){ return; } }; }; }