A deep dive into C++26 reflection, using a struct-of-arrays (SOA) vector implementation as the primary teaching vehicle. The talk covers the `define_aggregate` code generation mechanism, iterating over non-static data members, the `substitute`/`extract` pattern for working with type traits reflectively, expansion statements, `define_static_array`, annotations for opt-in behavior like a `derive_debug` formatter, and proxy types for mutable element access. Multiple approaches to iterating over members in parallel are shown, including pack expansion, expansion statements, tuple zip, and range-based zip. The talk demonstrates how reflection enables library authors to build zero-boilerplate, macro-free APIs that were previously impossible in standard C++.

1h 7m watch time

Sort: