The Dawn of a New Error
summary
A concrete C++ proposal set centers on p0709 "zero-overhead deterministic exceptions": exceptions become statically-typed value objects returned in registers instead of heap-allocated polymorphic objects, with a new try/fro syntax the compiler rewrites to expected-style transforms. Supporting pieces include status_code (p1028) that replaces std::error with small trivially-copyable domains and relocatable/move attribute (p1029) to allow memcopy moves. Designs promise compile-time checking and near-zero overhead but require compiler/runtime implementations to confirm the performance and ergonomics.
AI-written summary · about
chapters (22)
- 0:00Intro
- 1:00What we are talking about
- 2:10History
- 4:10Poison Exceptions
- 5:00Destructor Freeze
- 6:45No Expected
- 8:20Stand Expected
- 12:05Monads
- 12:53Abstract
- 14:45Bleeding Edge
- 15:13Competition
- 17:44Freeze
- 19:00SOAmorphism
- 20:27Proposed Solution
- 22:22What is stoodera
- 24:47Error categories
- 28:33Problems
- 31:40StatusCode
- 34:09Exceptions
- 35:18Other problems
- 38:35Move relocates
- 40:58Other proposals
related talks
53mThe Dawn Of A New Error
01h 04mKEYNOTE: De-fragmenting C++: Making exceptions more affordable and usable
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”
44mError handling in C++: as easy as "use exceptions"?
59mExpect the expected
54mTypical C++, But Why?
45mTo Err is Human - Robust Error Handling in C++26
