The Incredible Shrinking Standard
summary
Survey of C++ evolution from C++98 to C++17 with concrete examples: the standard removes legacy features (about 30 pages cut vs ~1000+ pages added), moves deprecated APIs into Annex D, and forces migrations (old exception specifications become noexcept, old storage-class and template quirks like the export keyword removed reappear as module design pain points). Library changes include killing copy‑on‑write strings and replacing std::auto_ptr with auto_ptr → unique_ptr, plus removal of trigraphs and many obsolete iterator/allocator helpers; compilers increasingly emit deprecation warnings to aid migration.
AI-written summary · about
chapters (26)
- 0:00What is this talk?
- 1:58What is Deprecation?
- 2:47Why Remove Stuff?
- 4:20A Note on Compatibility
- 5:44What is Breakage?
- 8:32Core Language
- 10:29static functions
- 13:37Example of Access Declarations (from Stack Overflow)
- 14:19Incrementing bool
- 16:13Decrementing bool
- 16:59export
- 22:49register
- 26:24Trigraphs
- 29:44Digraphs?!
- 31:57Exception Specifications
- 35:57Implicit Copy Operations
- 41:33char* for string literals
- 43:14Narrowing Conversions?
- 45:21Significant Whitespace
- 47:53Redeclaration of static constexpr data
- 50:17PODs!
- 52:32Library Deprecations
- 53:43gets
- 54:32Ref-counted strings
- 56:57Old iostream Members
- 59:10Zombies!
related talks
59mC++17 in Breadth (part 1 of 2)
01h 03mC++17 part 2: The Library Features
56mC++17: The Library Features
01h 25mMove Slow and Break Things - Upgrading to C++26
01h 09m"C++ Standard Library Panel"
55mNot your GrandParent’s C++
24mC++17 and 20 Goodies
01h 32mThe 10 Essential Features for the Future of C++ Libraries
