Meta Techniques: Heterogeneous Polymorphism & Fast Prototyping at Facebook
summary
Claims that full features can be generated at compile time and used to prototype a small database engine that stores vectors maps and strings rather than tables, using C++11/14 template meta‑programming. Implements type lists, type maps and variants, a compile‑time prefix trie and binary search over typelists, plus call_traits for method dispatch. Prototype compiles and runs (live demo has hiccups) and the engine grows without changing core code — prototype is ~374 lines and sources link from https://github.com/CppCon/CppCon2014.
AI-written summary · about
chapters (33)
- 0:00Introduction
- 6:01Live Demo
- 11:02Motivation
- 15:57Toolkit
- 20:50Transform
- 24:16Constant Sequence
- 25:32Strings
- 26:44String Operations
- 27:03String Maps
- 28:08Operations
- 29:12String Switch
- 30:31Variance
- 33:47Cross Boundaries
- 34:35Type List
- 35:28Type Strings
- 36:53Writing an Engine
- 37:41Metadata
- 38:59Operation
- 41:02Constant Range
- 42:06Instantiate
- 43:15Arbitrary Operations
- 44:52Wrap
- 46:43Heterogeneous Polymorphism
- 48:09Limitations to Virtually Inheritance
- 49:42Variants
- 51:12Prototyping
- 54:18Qualtrics
- 55:32Signature
- 55:43Class
- 56:22Recap
- 56:48Use cases
- 57:30Portable database models
- 58:37Other uses
related talks
01h 18mMeta Polymorphism
01h 39mKeynote - C++ Metaprogramming: evolution and future direction
54mRapid Prototyping in C++
41mTemplate meta-programming: Why you must get it
23mFunctional Programming in C++ (Run time vs Compile time types)
02h 02mPeering forward: C++'s next decade
01h 01mUsing Modern C++ to Eliminate Virtual Functions
55mHow bad is meta-programming still today?
