Continuable asynchronous programming with allocation aware futures
summary
Claims a header only C++14 library called continuable that implements allocation aware futures with fewer heap allocations (examples show six allocations for chained std::future vs two or none for continuable). Uses a custom type erasure (author's function2), supports lazy evaluation, heir-value-only then semantics, executors, exception routing and compositors like when_all/when_any/when_sequential, interoperates with coroutines, and provides benchmarks and slide-backed code so the implementation and performance tradeoffs are verifiable.
AI-written summary · about
chapters (40)
- 0:00About me
- 0:33Outline
- 1:17Future Pattern
- 2:01Stand future
- 2:31Future then method
- 3:57Naive approach
- 4:41Future implementations
- 5:01Overhead
- 5:30Nonshared futures
- 6:30Asynchronous evaluations
- 8:50Finegrained exception control
- 9:05Exceptional future
- 10:25Availability
- 11:07Design goals
- 13:43Continuable
- 14:08Promises
- 15:19HTTP Requests
- 16:01Accepting partial arguments
- 16:46How does this work
- 17:50Metaprogramming
- 20:20Following
- 21:27Wrapping
- 22:05Exception handling
- 24:47Exception routing
- 25:08Continuation base
- 25:55Denis method
- 26:44Ownership
- 28:43Code
- 31:24Eraser
- 33:48Executors
- 35:18Propagation
- 36:46Design rules
- 37:49Connections
- 39:06Primitives
- 43:31Example
- 50:26Continuation
- 52:26Questions
- 53:46Optionals
- 56:41Cancellation mechanisms
- 58:43Dynamic allocation
related talks
01h 02mThere is a new future
57m[filtered] Asynchronous C++ Programming
58mAn Introduction to C++ Coroutines
55mC++20 coroutines as an API principle
01h 02mC++20’s Coroutines for Beginners
01h 05mCoroutines: C++ vs Rust
01h 00mUsing Coroutines to Implement C++ Exceptions for Freestanding Environments
30mBack to the Futures
