On 11/17/25 4:47 PM, Jakub Jelinek wrote:
On Mon, Nov 17, 2025 at 04:40:54PM +0530, Jason Merrill via Gcc wrote:
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.

BTW, what is the status of P2113R0?  In 
https://gcc.gnu.org/projects/cxx-status.html
we still list it as "10.2 (no reversed operator handling)" i.e. partially
implemented.

We still don't implement https://eel.is/c++draft/temp.func.order#8.2.1

I'm not aware of any complaints about this, and independently there have been various changes to limit the scope of "more specialized", so I don't see it as a high priority.

Jason

Reply via email to