short

Reflection in the wild: April 2026 in five links

· english · audience: working-cpp

Five things happened to C++26 reflection in April 2026. They are listed below in the order you should care about them, freshest at the top.

If you only have ten minutes this Sunday, click the first two.

GCC 16.1 ships P2996

GCC 16.1 dropped on 30 April 2026 with the P2996 reflection facility built in. Ubuntu users get it via apt install gcc-16 Real Soon (TM); the package is already in the staging PPA at the time of writing. Every example from the wro.cpp series compiles on it with a single include rewrite (swap <experimental/meta> for <meta>). Five weeks from “the standard is done at Croydon” to “your distro’s default compiler builds it” — this is the moment reflection stops being a Bloomberg-fork curiosity.

Read: https://isocpp.org/blog/2026/04/gcc-16.1

Glaze v7.2

Stephen Berry’s Glaze is the first production-grade C++ library to swap its hand-rolled metaprogramming for a P2996 backend. v7.2 lifts the old 128-member cap, supports private members without friend declarations, and adds a reflect_enums mode that auto-serializes enums to their identifier strings — the exact trick we built by hand in post 5. If you serialize JSON in C++ today, this is the upgrade that pays for itself in a sprint.

Read: https://stephenberry.github.io/glaze/p2996-reflection/

Barry Revzin: meta::substitute

Revzin published an April write-up of std::meta::substitute — the primitive that powers compile-time format-string parsing, schema-derived APIs, and most of the more interesting things you can do once you have reflections of templates. It is the single best explanation of why P2996 ships substitution as a first-class operation rather than leaving it to the splicer.

Read: https://isocpp.org/blog/2026/04/behold-the-power-of-metasubstitute-barry-revzin

Lemire and Thiesen: serde-beating JSON

The CppCon 2025 talk got republished on isocpp.org in April. Daniel Lemire and Cesare Thiesen show gigabytes-per-second JSON serialization built on reflection — enough throughput to put C++ ahead of Rust’s serde for the first time in years. The talk is a clinic on what reflection unlocks at the bottom of the stack.

Read: https://isocpp.org/blog/2026/04/cppcon-2025-how-cpp-finally-beats-rust-at-json-serialization-lemire-thiesen

What is NOT shipping yet

For balance: nlohmann/json, magic_enum, protobuf, and Cap’n Proto are all still on their pre-P2996 paths. The big-name libraries you already depend on will catch up over months, not days — maintainers have to weigh dropping older toolchains against rewriting their cores. Plan accordingly. New code can lean on Glaze today; legacy code will keep its macros for another year at least.

Bonus — C++Now keynote

C++Now 2026 ends on 8 May; Revzin keynotes on reflection. Video typically lags 1-3 weeks, so we are not linking it yet. The agenda is here: https://cppnow.org/announcements/2026/03/2026-schedule-announced/. We will surface the talk in the next roundup once it is live.