~/talk

Building a C++ Reflection System

Talkat Meeting C++ 2018 · 2018-11-15..11-17· [rust]
slides:none on file

A concrete C++ reflection system that parses the AST with LLVM/clang libTooling and generates a header with AST-driven code generation to provide runtime types, fields and functions; implements JSON stringify/dump, visitation, FNV-1a type hashes and typedef expansion; uses attributes/macros to mark what to reflect and emits a header per translation unit (header cogeneration); roughly 3k LOC of hand code plus ~5k lines of tooling, demonstrated compiling and working but intrusive and requiring a separate tool.

AI-written summary · about

  1. 0:00Introduction
  2. 0:11Structure as function
  3. 3:22Get type
  4. 6:52How to start
  5. 11:47Getting the data
  6. 13:35Primitive types
  7. 17:48LLVM
  8. 18:56Lib tooling
  9. 19:33Code generation
  10. 20:26Hello ASD program
  11. 21:44Hello LLVM program
  12. 23:35Annotation
  13. 24:17Secret Files
  14. 24:53Property Macro
  15. 25:49Class Finder
  16. 27:43Run method
  17. 29:11Calling dumb function
  18. 29:34Running the tool
  19. 30:23Single record
  20. 31:45Generating code
  21. 32:34Cogeneration
  22. 33:25Generate
  23. 34:55emeritus
  24. 35:22the little
  25. 36:39user
  26. 39:12public API
  27. 39:32dumping
  28. 40:26debug information
  29. 40:52class implementation
  30. 42:41detail illumination
  31. 43:03type
  32. 44:22function parameters
  33. 45:27class
  34. 45:52supervisor
  35. 46:21middle class
  36. 46:46end class
  37. 47:03branch
  38. 47:44primitive
  39. 47:59string
  40. 48:49primitive function
  41. 49:13future
  42. 50:58working confession
  43. 51:38how does it expand
  44. 51:51creating a fully qualified name
~/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.