Expression Templates: Past, Present, Future
summary
Argues that expression templates are not just temporary-elimination tricks but a way to build embedded DSLs by producing lazy expression trees that get pattern-matched, transformed and code‑generated. Demonstrates Boost.Proto as the toolkit for terminals, grammars, transforms and domains that wrap ASTs, shows matrix examples where an assignment node can trigger BLAS calls, warns of heavy compile‑time cost and dependence on compiler inlining, and contrasts hand‑rolled ETs with Boost.PROTO/Boost.HANA reuse.
AI-written summary · about
chapters (11)
- 0:00Intro
- 2:32Recap
- 4:02Expression Templates
- 4:54Manual Extraction
- 6:53DomainSpecific and Dead Languages
- 11:32BoostProvo
- 24:12TrueFalse
- 28:57Transform
- 34:04Floats
- 41:49Custom Functions
- 50:21Domain
related talks
01h 06mResolving Template MetaProgramming Challenges Using Type_expr
01h 02mCrafting EDSL In C++ using Metaprogramming, Operator Overloading, & Lambda Expressions
36mCool kids' way of generating code
01h 00mModern Template Metaprogramming: A Compendium, Part I
43mBeyond LINQ: Using Expression Trees in .NET
28mBridging Syntax and Semantics of Lean Expressions in E-Graphs
01h 01mRethinking the Way We Do Templates in C++
26mErlang Metaprogramming: Zotonic's Template and Dispatch Compilers
