~/talk

“How bad is Meta-Programming still today?"

Talkat CppCon 2016 · 2016-09-18..09-23· [compilers-and-language-design]
links:none on file
slides:none on file

A fast survey of C++ compile-time programming that shows what actually works: classical template metaprograms (prime test, Fibonacci) compile with old compilers and once infamously cause days of build time and megabyte-scale error output (GCC 4.5 example with ~18 MB messages), while constexpr in C++14 lets the same algorithms become readable, handle floats and user types, and be evaluated at compile time or runtime. Demonstrates expression templates for zero-temporary arithmetic, meta-tuning via unrolling, and proves constexpr are Turing-complete; practical tradeoffs and compiler limits are measured and discussed.

AI-written summary · about

  1. 0:00Intro
  2. 4:29Disillusion
  3. 7:27Fibonacci Numbers
  4. 10:17Testing for Prime Numbers
  5. 12:22Benefits of constexpr
  6. 13:46Example: Template Square
  7. 18:43Equivalence of constexpr Computability
  8. 21:20Type Traits
  9. 24:17Semantic Tests
  10. 25:45Trait for mixed-type Operations
  11. 29:00Availability with enable if
  12. 30:40Function selection with enable if
  13. 32:41Elegance vs. Performance
  14. 36:06Expression Templates: Elegance and Performance
  15. 42:03Loop Unrolling Hope for the Compiler
  16. 43:01Loop Unrolling Do it Yourself
  17. 44:03Unroll Loops of Variable Length
  18. 44:17Parameterized Unrolling
  19. 46:24API and Performance
  20. 50:02Computability of Template Meta-Programs
  21. 50:44Computability of constexpr
  22. 51:50Recursive Functions Composition
  23. 53:20Recursive Functions: Minimalization
  24. 55:27The Turing Completeness
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.