LeviLamina
Loading...
Searching...
No Matches
ForwardAwaiter.h
1#pragma once
2
3#include <coroutine>
4
5namespace ll::coro {
6template <typename T>
8 [[nodiscard]] constexpr ForwardAwaiter(T val) : t(std::move(val)) {}
9
10 constexpr bool await_ready() const noexcept { return true; }
11 constexpr void await_suspend(std::coroutine_handle<>) const noexcept {}
12 constexpr T await_resume() noexcept { return std::move(t); }
13
14 T t;
15};
16template <>
17struct ForwardAwaiter<void> {
18 constexpr bool await_ready() const noexcept { return true; }
19 constexpr void await_suspend(std::coroutine_handle<>) const noexcept {}
20 constexpr void await_resume() const noexcept {}
21};
22} // namespace ll::coro
Definition ForwardAwaiter.h:7