The Dawn Of A New Error
summary
Summary of a C++ proposal that replaces heaped RTTI exceptions with ADT-style, value errors: p0709r1 proposes zero-overhead deterministic exceptions that use a freeze qualifier on functions and a try keyword to propagate compact error values (no dynamic allocation), map to std::expected-like returns, and let catch-by-value avoid RTTI. Supporting papers (p1028 std::error, p1029/1144 move-relocates) add fast status-code domains and relocatable moves so happy-path costs compile to two-register returns plus a single discriminant bit. Interop with classic exceptions is discussed.
AI-written summary · about
chapters (23)
- 0:00Introduction
- 1:01A history of error talks
- 2:19Swift and error handling
- 4:04P0709: Deterministic exceptions
- 5:01Exploding return types
- 8:46Evolution to Expected
- 10:29Language comparisons
- 12:41Using std::expected
- 14:49Functional error handling
- 17:49Syntax and semantics of P0709
- 21:33Implementation details
- 23:30Try-catch semantics
- 26:32P1028: Status code
- 28:47System error context
- 31:59Error code mechanics
- 34:57Issues with system_error
- 36:46Status code solution
- 40:12Designing status_code
- 42:30Advantages of status_code
- 45:51Compiler optimization
- 47:22Move relocates proposal
- 49:41Performance breakdown
- 51:07Conclusion and Q&A
related talks
44mThe Dawn of a New Error
01h 33mDe-fragmenting C++: Making Exceptions and RTTI More Affordable and Usable
01h 03m“What Could Possibly Go Wrong?: A Tale of Expectations and Exceptions”
59mExpect the expected
44mError handling in C++: as easy as "use exceptions"?
45mTo Err is Human - Robust Error Handling in C++26
01h 29mC++ Error Handling
04mErrors: forgotten, but not gone
