P4003R1 — Ask: A Minimal Coroutine Execution Model
Vinnie Falco, Mungo Gill, Steve Gerbino
LEWG
Revisions R3May 2026R2Apr 2026R1Apr 2026R0Feb 2026
C++20 coroutines have five properties that, taken together, make them uniquely suited to asynchronous I/O: type erasure through `coroutine_handle<>` , customization through `promise_type` , stackless independently- resumable frames, symmetric transfer through `await_suspend` , and compiler-managed state that persists across suspension points. Each was designed for generality. Their conjunction yields something no single property suggests: the optimal basis for byte-oriented I/O.