Meta
summary
Reports a Clang-based prototype (about a month and a half of work, with a tokenized proof-of-concept that took ~4 hours) that implements compile-time constexpr block metaprograms and source-code fragment values which become constexpr objects capturing placeholders for locals. It exposes three primitives—generation, injection, extension (extension not yet implemented)—that turn reflected declarations into emitted code; basic cases (generating member variables from another class) work, but wrapping existing functions and tooling/comments remain unresolved.
AI-written summary · about
chapters (37)
- 0:00Introduction
- 2:07Background
- 2:50Explanation
- 7:50Meta Subprogram
- 9:15Meta Program
- 10:41Tokens
- 12:50Declarations
- 13:24Fragments
- 15:29Fragment Rules
- 16:02Class Fragment
- 16:30Namespace Fragment
- 16:56Block Fragment
- 17:35Push Data into Fragment
- 18:54Three Phases
- 19:47Placeholders
- 21:08Type
- 22:07Value
- 23:22Generate Code
- 25:12Generation
- 27:52Injection
- 29:43Injection and Generation
- 30:06Extension
- 31:34Sword
- 32:11Extensions
- 34:06Make Virtual
- 34:58Injection is more involved
- 36:19What is an injection
- 37:07Walkthrough
- 37:37Getting Weird
- 37:56Expanding the Loop
- 38:26Fragment
- 42:18Metaclasses
- 43:10Interface
- 44:13Meta Programming
- 45:45Wrapping Functions
- 47:04Reflection Objects
- 50:25Questions
related talks
59mMeta++: Language Support for Advanced Generative Programming
01h 01m“How bad is Meta-Programming still today?"
01h 08mReflections: Compile-time Introspection of Source Code
01h 27mC++ Reflection - Back on Track
51mCompile-time tools supporting generic programming in C++
01h 04mWelcome to v1.0 of the meta::[[verse]]!
45mC++ is a Metacompiler
48mMetaprogramming 2.0
