13 auto get_awaiter(Awaitable&& awaitable,
void*) ->
decltype(
auto) {
14 if constexpr (
requires { util::forward<Awaitable>(awaitable).operator
co_await(); }) {
15 return util::forward<Awaitable>(awaitable).operator
co_await();
16 }
else if constexpr (
requires {
operator co_await(util::forward<Awaitable>(awaitable)); }) {
17 return operator co_await(util::forward<Awaitable>(awaitable));
19 return util::forward<Awaitable>(awaitable);