~/talk

Beyond struct: Meta-programming a struct Replacement in C++20

Talkat CppCon 2021 · on Tuesday, 2021-10-26· at 09:00· online· [webassembly]
links:none on file
slides:none on file

Claims a workable struct replacement implemented in standard C++20 using a fixed_string non-type template parameter for names, overload resolution and inheritance to implement get<Tag> overload plus object-slicing, and an arg= syntax that builds members by slicing a shared parms object. It adds default-init lambdas (including self-aware expressions), compile-time required fields, metastruct::apply reflection, subset conversions, attributes represented as metastructs, and an automatic soa vector with person_ref. It compiles and runs but gives atrocious compiler errors and nontrivial compile-time cost.

AI-written summary · about

  1. 0:00Start
  2. 5:32Defining and accessing members
  3. 10:59Parms and member
  4. 12:59Construction
  5. 17:02Meta Struct Impl
  6. 17:15Default Init with Expression
  7. 21:54Meta Struct Apply Object version
  8. 22:23Meta Struct Apply Type Version
  9. 23:12Subset conversions
  10. 23:44Attributes
  11. 26:55Named arguments
  12. 31:06Soa Vector
  13. 32:35Duck Typing for Structs
  14. 32:51Duck Typing with Templates
  15. 33:35Duck Typing for meta struct
  16. 35:00Compile Time Regular Expressions
~/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.