Overview
Syllabus
- Intro and roadmap for the talk
- 1. cppfront recap
- 2. cppfront: what’s new
- a 3 smaller new features showing simplicity+safety+efficiency
- simplicity, safety and efficiency rarely in tension, with the right abstractions
- chained comparisons
- named loops/break/continue
- main’s arguments
- b user-defined types
- explicit `this`
- unified `operator=`: {construct,assign}x{copy,move} is a single function by default
- virtual/override/final are qualifiers on `this`
- DEMO: inheritance
- c reflection and type metafunctions
– DEMO: applying type metafunctions
- 3. compatibility for C++
- John Carmack on compatibility in the real world
- C++ from C, TypeScript from JavaScript, Swift from Objective-C, Roslyn from prior compiler
- emphasizing and dissecting TypeScript’s compatibility story
- Dart: similar goal, but not designed to be compatible
- the “lost decade” pattern: lack of seamless compatibility will cost you a decade in adoption
- three “plans”: the “10% plan”, the “Dart plan”, and the “TypeScript plan”
- “10% plan”: incremental evolution-as-usual
- “Dart plan”: designing something new, not worry about compatible interop, competitive
- “TypeScript plan”: designing for something compatible, cooperative
- filling in the blank: A TypeScript for C++
Taught by
CppNow