https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116440
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Tiancheng Yu from comment #0) > This only fails on gcc 14+ with -std=c++20 or higher. On older gcc versions > with -std=c++20 or gcc 14+ with -std=c++17 it compiles fine. GCC 14 has new definitions of std::tuple constructors that are used when C++20 is enabled, controlled by: #if __cpp_concepts && __cpp_consteval && __cpp_conditional_explicit > I also observed that clang trunk failed to compile with similar errors, Because it's using the new libstdc++ headers. > but > clang 18 works fine, too. Almost certainly because it's using older libstdc++ headers, probably from GCC 13. It's not very useful to just say something works with clang on godbolt without considering whether it's using libc++ or libstdc++, and for the latter, *which version* of libstdc++.