#pragma once #include #include namespace hysj::inline _HYSJ_VERSION_NAMESPACE::coroutines{ namespace hooks::yield_hook{ inline constexpr struct yield_fn{ friend constexpr auto tag_invoke(yield_fn,auto &promise,auto &&... values) arrow((yield(promise,fwd(values)...))) constexpr auto operator()(auto &promise,auto &&...values)const arrow((tag_invoke(*this,promise,fwd(values)...))) } yield{}; } //hooks::yield_hook using hooks::yield_hook::yield; } //hysj::coroutines #include