std::noop_coroutine_promise
std::noop_coroutine_promise (no-op 코루틴 promise)
std::noop_coroutine()이 돌려주는 특수 코루틴에 연결된 promise 타입이에요. 아무 작업도 수행하지 않는 no-op 코루틴을 위한 예약된 promise예요. C++20부터 있어요.
출처: cppreference
본문
<coroutine> 헤더에 정의돼 있고, no-op 코루틴용 promise 타입이에요.
struct noop_coroutine_promise;
std::noop_coroutine_promise는 std::noop_coroutine()이 만드는 특수 no-op 코루틴에 대한 promise 타입이에요. std::noop_coroutine_handle은 std::coroutine_handle<std::noop_coroutine_promise>와 동일해요.
이 promise는 no-op 코루틴의 특성을 반영해요.
get_return_object():std::noop_coroutine_handle을 돌려줘요.initial_suspend():std::suspend_always를 돌려줘요.return_void(): no-op 코루틴은 아무 값도 반환하지 않아요.unhandled_exception(): no-op 코루틴에서 예외는 놓치지 않고 전파돼요(std::terminate호출).final_suspend():std::suspend_always를 돌려줘요.
이 promise 타입은 사용자가 직접 만들거나 일반 코루틴에 연결하는 용도가 아니라, 표준 라이브러리가 내부적으로 no-op 코루틴을 관리하는 데 쓰여요. 때문에 std::coroutine_handle<std::noop_coroutine_promise>의 특별한 동작(파괴 금지, 재개해도 무작동 등)이 이 promise의 속성과 연결돼요.