https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103891
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- I suppose we could just do: --- a/libstdc++-v3/include/std/variant +++ b/libstdc++-v3/include/std/variant @@ -54,7 +54,7 @@ namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION -#if __cplusplus >= 202002L && __cpp_concepts +#if __cplusplus >= 202002L && __cpp_concepts && __GNUC__ >= 12 // P2231R1 constexpr needs constexpr unions and constrained destructors. # define __cpp_lib_variant 202106L #else And then improve it later if GCC updates __cpp_concepts