- Preface
- Part I — The Language
- 1. The compiler is a committee
- 2. Values and functions
- 3. User-defined types: structs, sums, and expectations
- 4. Control flow, modernly
- 5. Ownership, move, and RAII
- 6. Smart pointers and owning views
- 7. Lifetimes, and the compiler that sees them
- 8. Passing arguments, returning values
- 9. Errors: exceptions, expected, and contracts
- Part II — The Standard Library
- 10. Text: strings, views, and formatting
- 11. Containers
- 12. Algorithms are the loops
- 13. Ranges and views
- 14. Callables and type erasure
- 15. Numerics and multi-dimensional data
- Part III — Generic and Compile-Time Programming
- 16. Templates I: functions that match
- 17. Concepts: the constraint language
- 18. Compile-time C++
- 19. Values as template arguments
- 20. Specialization, overloading, customization points
- 21. Reading the old magic: SFINAE, type_traits, and friends
- 22. Capstone: a constexpr SQL in C++26
- Part IV — Systems
- 23. Headers, #include, and organizing programs
- 24. Modules, the standard's direction
- 25. Concurrency I: threads as values
- 26. Concurrency II: atomics, and the shape of async
- 27. Coroutines: suspension as first-class code
- 28. Speaking C
- 29. Fast is a specification
- Back matter
- 30. Appendix A: features and compilers
- 31. Appendix B: coming from other languages
- 32. Appendix C: Core Guidelines index
- 33. Appendix D: CMake
- 34. Appendix E: CTest
- 35. Appendix F: ASan and UBSan