libstdc++: Use _GLIBCXX_USE_BUILTIN_TRAIT for _Nth_type
Checks
Commit Message
Tested on x86_64-pc-linux-gnu, does this look OK for trunk?
-- >8 --
Since _Nth_type has a fallback native implementation, use
_GLIBCXX_USE_BUILTIN_TRAIT when deciding whether __type_pack_element
is available so that we can easily toggle which implementation
to use.
libstdc++-v3/ChangeLog:
* include/bits/utility.h (_Nth_type): Use
_GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.
---
libstdc++-v3/include/bits/utility.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On Wed, 10 Jan 2024 at 22:08, Patrick Palka <ppalka@redhat.com> wrote:
>
> Tested on x86_64-pc-linux-gnu, does this look OK for trunk?
OK (thanks, this was on my TODO list).
> -- >8 --
>
> Since _Nth_type has a fallback native implementation, use
> _GLIBCXX_USE_BUILTIN_TRAIT when deciding whether __type_pack_element
> is available so that we can easily toggle which implementation
> to use.
@@ -225,7 +225,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#endif // C++17
-#if __has_builtin(__type_pack_element)
+#if _GLIBCXX_USE_BUILTIN_TRAIT(__type_pack_element)
template<size_t _Np, typename... _Types>
struct _Nth_type
{ using type = __type_pack_element<_Np, _Types...>; };