On Thu, 15 Jan 2026 at 07:04, Jakub Jelinek <[email protected]> wrote: > > Hi! > > Last night when applying Marek's patchset for testing I've noticed I forgot > to change these 5 spots when changing the -freflection -std=c++26 predefined > value from 202500 which meant we implement some reflection, but not the > whole paper, to 202506 which is the > https://eel.is/c++draft/tab:cpp.predefined.ft > value for it. > > Bootstrapped/regtested on x86_64-linux and i686-linux on top of Marek's > v3 patchset, ok for trunk after that patch is committed?
OK, thanks > > 2026-01-15 Jakub Jelinek <[email protected]> > > * include/std/type_traits (std::is_reflection, std::is_fundamental, > std::is_reflection_v, std::is_consteval_only): Compare > __cpp_impl_reflection >= 202506L instead of 202500L. > * testsuite/20_util/variable_templates_for_traits.cc: Likewise. > > --- libstdc++-v3/include/std/type_traits.jj 2026-01-14 21:26:19.456842913 > +0100 > +++ libstdc++-v3/include/std/type_traits 2026-01-14 22:00:46.524039884 > +0100 > @@ -749,7 +749,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > : public false_type { }; > #endif > > -#if __cpp_impl_reflection >= 202500L // C++ >= 26 > +#if __cpp_impl_reflection >= 202506L // C++ >= 26 > /// is_reflection > template<typename _Tp> > struct is_reflection > @@ -838,7 +838,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > struct is_fundamental > : public __or_<is_arithmetic<_Tp>, is_void<_Tp>, > is_null_pointer<_Tp> > -#if __cpp_impl_reflection >= 202500L > +#if __cpp_impl_reflection >= 202506L > , is_reflection<_Tp> > #endif > >::type > @@ -3555,7 +3555,7 @@ template <typename _Tp> > is_member_function_pointer<_Tp>::value; > #endif > > -#if __cpp_impl_reflection >= 202500L // C++ >= 26 > +#if __cpp_impl_reflection >= 202506L // C++ >= 26 > template <typename _Tp> > inline constexpr bool is_reflection_v = false; > template <> > @@ -3900,7 +3900,7 @@ template<typename _Ret, typename _Fn, ty > # endif > #endif > > -#if __cpp_impl_reflection >= 202500L \ > +#if __cpp_impl_reflection >= 202506L \ > && _GLIBCXX_USE_BUILTIN_TRAIT(__builtin_is_consteval_only) // C++ >= 26 > /// is_consteval_only - true if the type is consteval-only. > /// @since C++26 > --- libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc.jj > 2026-01-14 21:26:19.459487116 +0100 > +++ libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc > 2026-01-14 22:01:06.877697256 +0100 > @@ -331,7 +331,7 @@ static_assert(is_convertible_v<int&, con > static_assert(!is_convertible_v<const int&, int&> > && !is_convertible<const int&, int&>::value, ""); > > -#if __cpp_impl_reflection >= 202500L > +#if __cpp_impl_reflection >= 202506L > static_assert(is_reflection_v<decltype(^^int)> > && is_reflection<decltype(^^int)>::value, ""); > static_assert(!is_reflection_v<int> && !is_reflection<int>::value, ""); > > Jakub >
