~/talk

“constexpr ALL the Things!”

Talkat CppCon 2017 · 2017-09-24..09-29· [compilers-and-language-design]
slides:none on file

Builds a real constexpr JSON parser and even a constexpr regex engine using constexpr lambdas and a user-defined literal template (GCC/Clang extension). Implements static_string, fixed-capacity constexpr_vector and flat-map, then removes template-depth limits with a size-precompute pass and a breadth-first linearization so arrays and objects are contiguous. Early builds take minutes; final release builds drop to a few seconds and small binaries. Demonstrations compile and static_assert at compile time; remaining limits are allocator/destructor and some stdlib gaps.

AI-written summary · about

  1. 0:00Intro
  2. 2:39Recap
  3. 4:02Context lambdas
  4. 4:50JSON values
  5. 5:34Strings
  6. 8:41Exception
  7. 9:12StandardNext
  8. 10:29BasicString
  9. 11:14Map
  10. 12:11Context
  11. 13:02Compiler Explorer
  12. 13:47Console Expert
  13. 15:17Bryce
  14. 15:46Equal Mismatch Copy Found Uses
  15. 16:16Recursive Declaration
  16. 22:07Retirements
  17. 22:31Shortcomings
  18. 23:10Art Containers
  19. 23:29Optional Containers
  20. 24:37CVP References
  21. 25:34What is a parser
  22. 26:39What is a template alias
  23. 27:26Parsers
  24. 29:24parsing on strings
  25. 31:53fmap
  26. 33:37combine
  27. 35:31accumulate
  28. 37:20parse
  29. 38:34lambdas
  30. 39:02pawza
  31. 39:55stringpass
  32. 40:27JSON pauses
  33. 40:42A wall of text
  34. 41:06Function templates
  35. 41:34Proofofconcept
  36. 41:52Problem 1 JSON
  37. 42:18Problem 2 JSON
  38. 42:53Problem 3 JSON
  39. 43:33Getting rid of templates
  40. 43:48The pausing framework
  41. 44:10Number of values parser
  42. 44:37No more templates
  43. 45:30Object Layout
  44. 46:08Templated Operator
  45. 46:52String literals
  46. 47:19No recursive templates
  47. 47:44No arbitrary hardcoded limits
  48. 48:23String size parsing
  49. 49:43Positive framework
  50. 51:18Objects
  51. 52:17Conclusion
  52. 53:12Demo
  53. 57:41Problems Things
  54. 57:53Quiz
  55. 59:03Why this matters
~/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.