On 11/4/25 12:04 AM, Marek Polacek wrote:
I would like us to declare that C++20 is no longer experimental and
change the default dialect to gnu++20.  Last time we changed the default
was over 5 years ago in GCC 11:
<https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=0801f419440c14f6772b28f763ad7d40f7f7a580>
and before that in 2015 in GCC 6.1, so this happens roughly every 5 years.

I had been hoping to move to C++20 in GCC 15 (see bug 113920), but at that time
libstdc++ still had incomplete C++20 support and the compiler had issues to iron
out (mangling of concepts, modules work, etc.).  Are we ready now?  Is anyone
aware of any blockers?  Presumably we still wouldn't enable Modules by default.

Modules definitely still seem experimental to me, and not just in GCC; the C++ community is still figuring out how best to integrate them with build systems. But we've made significant progress in GCC 16. And the minor ABI impact of modules, which is just mangling module attachment, is stable.

The other C++20 core feature I'm not sure about is coroutines; apart from the current regressions, Iain had been talking to clang folks about (adjustments to) a common coroutine ABI to support interoperability better. I don't know what the current status of that is. Iain?

There is still some disagreement with clang over concepts mangling, but later adjustments in template mangling aren't a deal-breaker.

Jason

Reply via email to