One of the things I like to do is compare how different languages solve the same problem — especially when they end up having very different approaches. It’s always educational. In this case, a bunch of us have been working hard on trying to get reflection — a really transformative language feature — into C++26. Fundamentally, reflection itself can be divided into two pieces:
This is a blog post that really is about C++, but with a look at how Rust does things. So, this is an interesting C++/Rust comparison for once.
Not only that. We don’t just “inject” raw strings with the syn/quote duality. Stringified or not, the token tree will be parse-checked into the expected syn type before being used in generated code.
So the distinction is both wrong and irrelevant. This is what I meant by wrong on multiple levels/layers 😉
Not only that. We don’t just “inject” raw strings with the
syn
/quote
duality. Stringified or not, the token tree will be parse-checked into the expectedsyn
type before being used in generated code.So the distinction is both wrong and irrelevant. This is what I meant by wrong on multiple levels/layers 😉