Meta Monads
summary
meta monads describes a compile-time pattern that separates algorithm from data to avoid creating many intermediate types, using aliases inside specialized template structs so the compiler memorizes the algorithm not the data. It adds fast track generators that remove blocks of types (powers of two) and a reusable control structure to implement take/drop/find_if variants. Reported speedups: ~30x for take versus prior metal, ~5–6x for find_if, with room for another order of magnitude.
AI-written summary · about
chapters (7)
- 0:00Introduction to Metamon
- 0:10The problem with naive methods
- 0:53Optimizing meta programs
- 2:04Fast tracking techniques
- 2:41Using specialized templates
- 4:26Implementing control structures
- 5:07Performance results and Q&A
related talks
36mThe language that isn't
49mA new look at TMP
01h 04mWhat Can Compiler Benchmarks Reveal About Metaprogramming Implementation Strategies
59mTemplate Metaprogramming: Type Traits (part 2 of 2)
41mTemplate meta-programming: Why you must get it
05mLightning Talk: MP: Template Meta-Programming in C++
56mboost.tmp: your DSL for Metaprogramming
01h 03mMeta Techniques: Heterogeneous Polymorphism & Fast Prototyping at Facebook
