Empirically Measuring, & Reducing, C++’s Accidental Complexity
summary
Catalogs 533 language rules and finds ~360 are accidental complexity, ~150 essential, and 25 essentially unavoidable; parameter passing (≈23%) and initialization (≈7%) together account for ~30% of recorded guidance. Proposes intent-based qualifiers (in, inout, out, move, forward), provides clang/Godbolt prototypes (cppx.godbolt.org) and examples showing identical runtime code but smaller object size (four-overload assembly ~250 lines vs one function ~120 lines). Prototypes work and promise to remove boilerplate and diagnostics for definite-first/last use.
AI-written summary · about
chapters (7)
- 0:00Conference opening
- 1:14Motivation for measuring complexity
- 12:09Empirical cataloging of C++ rules
- 29:18Proposal for simpler parameter passing
- 48:22Simplifying initialization and out parameters
- 1:05:16Q&A session
- 1:20:32Closing remarks
related talks
01h 22mSimplicity: not just for beginners
55mC++ Core and Other C++ Guidelines - The Good, the Bad, the… Questionable?
50mCore and other guidelines. The good, the bad, the... questionable?
01h 08mMidnote: For the Sake of Complexity
01h 05mAbstraction Patterns: Making Code Reliably Better Without Deep Understanding
59mC++ Code Smells
55mIdentifying Common Code Smells (In C++)
56mIdentifying Common Code Smells
