GCC 16.1 has been released! Lots of good C++26 material including reflection and contracts.
GCC 16 Release Series: Changes, New Features, and Fixes
From the announcement:
- C++20 by default: [...] N.B. C++20 modules support is still experimental and must be enabled by -fmodules.
- Several C++26 features have been implemented:
- P2996R13, Reflection (PR120775, enabled by
-std=c++26 -freflection)- P3394R4, Annotations for Reflection
- P3293R3, Splicing a base class subobject
- P3096R12, Function Parameter Reflection
- P3491R3,
define_static_{string,object,array} (PR120783)- P3560R2, Error Handling in Reflection
- P1306R5, Expansion statements (PR120776)
- P2900R14, Contracts (PR119061)
- P2795R5, Erroneous behavior for uninitialized reads (PR114457)
- [...]
- Improved experimental C++20 modules support:
- New command line option
--compile-std-modulethat conveniently builds the<bits/stdc++.h>header unit and thestdandstd.compatmodules before compiling any source files explicitly specified on the command line.- Whenever the
<bits/stdc++.h>header unit has been built, GCC now transparently translates an#includeof any importable standard library header into animportof<bits/stdc++.h>.- Many reported bugs have been fixed, thanks to Nathaniel Shead.
- [...]
Runtime Library (libstdc++)
[...]Improved experimental support for [...]
std::mdspan, thanks to Luc Grosheintz.[...]std::simd.std::inplace_vector.[...]

Add a Comment