C++20: The small things
summary
C++20 tightens and fills gaps: it adds designated initializers, redefines aggregates so they cannot have user-declared constructors, and permits parenthesis initialization for aggregates and arrays; it introduces constinit to force compile-time initialization without const, a range-based for initializer, and structured bindings that can be captured in lambdas. Lambdas become usable in unevaluated contexts and default-constructible; functions gain auto parameters; non-type template parameters accept literal types; compilers auto-generate CTAD guides; and utilities like is_constant_evaluated and no_unique_address land.
AI-written summary · about
chapters (23)
- 0:00Intro
- 1:24Agenda
- 3:04Aggregates
- 6:25Aggregate constructors
- 8:02Macros
- 9:15Parens
- 10:46Static Objects
- 15:32Initializers
- 17:02Structuring
- 19:29Lambdas
- 24:01Templates
- 27:15NonTab Template Parameters
- 32:14Questions
- 34:09Class template argument deduction
- 36:51Constant Expert
- 40:14Constanteval
- 43:31Inverse Square
- 44:46Constant Evaluated
- 46:16Context Per
- 50:28Template tightening
- 52:22New attributes
- 54:19Avoiding bug
- 55:53Unicode literals








