Compile-time tools supporting generic programming in C++
summary
Shows concrete compile-time workflows: use metashell plus the MDB debugger to instantiate an expression, get forward/back traces and the instantiation tree, or run the patched clang/templite to emit callgrind traces viewable in kcachegrind; use boost_mp_print or boost::typeindex, GDB or a tiny runtime to print type names. Demonstrates a >3s Boost.Graph compile hotspot, thousands of template instantiations, and working debugger/profiler tooling (requires a clang patch or provided binaries).
AI-written summary · about
chapters (22)
- 0:00Intro
- 1:35Generic programming
- 2:33Using templates
- 4:03Template metaprogrammers
- 5:25Available tools
- 8:26Approaches
- 8:38Enforced error message
- 9:11boost::mpl::print
- 9:55metamonad: fail_with_type
- 10:29Displaying the name at runtime
- 15:28What is the type of...? #2
- 19:58Metashell
- 21:36What is the type of...? #3
- 24:55KCache Grind
- 27:16Understanding template instantiations
- 27:27Summarising numbers
- 28:53An STL example
- 31:31Compilation speed
- 39:01What gets instantiated?
- 40:05Example code
- 41:54How to see what went wrong
- 45:41It all depends on a Clang patch
related talks
59mMeta++: Language Support for Advanced Generative Programming
01h 04mJust-in-Time Compilation: The Next Big Thing?
01h 01m“How bad is Meta-Programming still today?"
01h 01mMeta
40mJoy of Meta-Tracing Just-in-Time Compilation: More Than Just a VM Generator
22mBoosting Compiler Testing by Injecting Real-World Code
01h 16m“What Has My Compiler Done for Me Lately? Unbolting the Compiler's Lid”
01h 08mReflections: Compile-time Introspection of Source Code
