C++11/14 at Scale - What Have We Learned?
summary
Eight years of C++11/14 adoption at a large company yields concrete lessons: surveys show ~83% C++11 and ~58–65% C++14 adoption in 2018–2019, and incremental parsing changes (>> now closing templates) can silently change behavior; attributes like nodiscard can make code ill-formed NDR; range-based for can trigger lifetime extension bugs when a cached vector switches from by-value to by-const-ref; decltype(auto) is frequently overused and harms readability; extended friend declarations pair well with CRTP to fix typos and encapsulation issues; testing uses ASan and benchmarks; a training-first rollout and a forthcoming book codify teaching paths.
AI-written summary · about
chapters (24)
- 0:00Start
- 0:27Backstory
- 5:36The Adoption of New Standards
- 11:20Good Learning Resources
- 16:38External Template
- 18:57What Does It Mean To Be at Scale
- 20:59Style Guide
- 21:51What Is the Input to a Style Guide
- 23:51Teachability
- 26:01Override Keyword
- 27:15Compiler Flags
- 27:45Range Based for Loops
- 34:13Example High Order Functions
- 43:24Why Is Final Unsafe
- 44:55Hierarchical Reuse
- 55:41Long Distance Friendship
- 58:38Avoiding Typos
- 59:35Customization Points Using Type Analysis
- 1:00:07Crtp
- 1:01:29Basic Use Case
- 1:02:32Instance Counter
- 1:05:24Extended Friend Declaration
- 1:18:09Why Is Inum Class Conditionally Safe Only Should It Be Preferable over Enums in all Cases Where Enum Class Can Be Used
- 1:19:19Operator Overloads for Random Classes








