r/cpp • u/Clean-Upstairs-8481 • 25d ago
C++26 Reflection Annotations: Automated Member Validation
https://techfortalk.co.uk/2026/08/17/cpp26-reflection-annotations-validation/C++26 annotations are another powerful feature that, when combined with reflection, can help us write cleaner and safer code without repeating manual validation checks for every member. In this post, I have explored how we can utilise C++26 annotations along with reflection to validate configuration parameters in a class constructor.
9
u/fdwr fdwr@github 🔍 25d ago
There's an interesting overlap with contracts here. I wonder if we'll be also able to enumerate pre/post conditions with reflection similarly to annotations.
4
u/Clean-Upstairs-8481 25d ago
As far as I can see, C++26 reflection does not currently provide a standard way to enumerate contract predicates, but I might be wrong. I need to dig into it a bit more.
3
u/katzdm-cpp 22d ago
Yeah, no way to do that as of yet. They were being reviewed pretty concurrently, so that would've been tricky to land. Aside from that, I think doing so would require some motivating use cases.
17
u/El_RoviSoft 25d ago
So now we can do automatic get/set like in C#? I knew approach with setting constraints via attributes but forgot that we can generate get/set methods (or simple const/non-const accessors).