Plenary: Cooperative C++ Evolution - Toward a Typescript for C++
Talkat CppCon 2023 · on Thursday, 2023-10-05· at 10:30· Adams, 6700 North Gaylord Rockies Boulevard·
summary
An experimental compiler, cppfront, transpiles a new C++-style syntax into standard C++ and already demonstrates concrete results: bounds-checked subscripts and null/bound diagnostics by default, guaranteed initialization, contracts, const-by-default and make_unique-for-new, named loop labels, safer enums and unions, flag enums and generated members. The work compiles with GCC/Clang/MSVC, integrates with debuggers and toolchains, and feeds proposals into ISO C++, claiming 10x simpler, 50x safer (98% fewer reported vulnerabilities) while preserving seamless interop.
AI-written summary · about
chapters (30)
- 0:00Introduction
- 0:35Keynote agenda
- 1:32C++ experiment goals
- 3:50Important themes
- 6:28Cppfront implementation
- 9:31New features and trade-offs
- 13:11Safety and efficiency
- 16:13Metaclasses in Cppfront
- 18:52Metaclass functionality
- 23:23Metaclass examples
- 26:03Enum and flag types
- 29:42Metaclass code deep dive
- 33:53User-defined meta functions
- 36:41Union meta function
- 39:15Strategy and compatibility
- 44:00Adoption challenges
- 47:21Lessons from JS and Dart
- 50:22The TypeScript plan
- 53:28Lessons from Python 3
- 56:50C++ compatibility history
- 1:00:15Guido on Python 3
- 1:05:54Breaking change costs
- 1:08:44Three options for evolution
- 1:12:07The typescript plan for C++
- 1:15:15Costs of the typescript plan
- 1:18:53Naming and keywords
- 1:21:07Cppfront demo
- 1:25:22Debugging demo
- 1:28:28Tooling compatibility
- 1:32:37Conclusion
related talks
02h 02mPeering forward: C++'s next decade
01h 37mPeering Forward - C++’s Next Decade
23mFunctional Programming in C++ (Run time vs Compile time types)
01h 00mTeaching old compilers new tricks
56mPractical C++17
01h 02mEmbedded Friendly C++: Features That Make a Difference
54mC++26: an overview
56mEvolving a Nice Trick
