C++26 reflection at compile-time -- Andreas Fertig
In today's post, I like to talk about C++26 and one of the probably most impactful features that have been added to the working draft. While C++26 is still some months away from official completion, since the WG21 summer meeting in June we all now know what will be in C++26.
C++26 reflection at compile-time
by Andreas Fertig
From the article:
While the new standard will have plenty of great improvements the one that will most likely change a lot is reflection at compile-time! In Sofia we voted seven reflection papers into C++26:
- P1306R5 Expansion statements
- P2996R13 Reflection for C++26
- P3096R12: Function parameter reflection in reflection for C++26
- P3293R3: Splicing a base class subobject
- P3394R4: Annotations for reflection
- P3491R3: define_static_
- P3560R2: Error handling in reflection
The papers above should give you enough to read for your vacation. I'll leave that theoretical study up to you for now.
Let's talk practical
The main question is, what can you do with that new feature? Well, I'm not the first one who published their ideas.


Release 1.89 of the Boost C++ Libraries is now available.
Another year, another trip report from C++ On Sea!
When should a destructor be virtual in C++? In this post, we’ll explore a real-world example from smart pointer implementation to illustrate when virtual destructors are necessary — and when they’re not.