GCC 16.1 released: C++26 reflection / contracts / safety hardening, C++20 by default, and more!
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.[...]


Registration is now open for CppCon 2026! The conference starts on September 12 and will be held 
Registration is now open for CppCon 2026! The conference starts on September 12 and will be held 

Registration is now open for CppCon 2026! The conference starts on September 12 and will be held