[gcc r15-1553] libstdc++: Remove std::__is_pointer and std::__is_scalar [PR115497]
Jonathan Wakely
redi@gcc.gnu.org
Fri Jun 21 16:07:57 GMT 2024
https://gcc.gnu.org/g:52a82359073653e312aaa5703f7e0ce339588961
commit r15-1553-g52a82359073653e312aaa5703f7e0ce339588961
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Wed Jun 19 17:26:37 2024 +0100
libstdc++: Remove std::__is_pointer and std::__is_scalar [PR115497]
This removes the std::__is_pointer and std::__is_scalar traits, as they
conflicts with a Clang built-in.
Although Clang has a hack to make the class templates work despite using
reserved names, removing these class templates will allow that hack to
be dropped at some future date.
libstdc++-v3/ChangeLog:
PR libstdc++/115497
* include/bits/cpp_type_traits.h (__is_pointer, __is_scalar):
Remove.
(__is_arithmetic): Do not use __is_pointer in the primary
template. Add partial specialization for pointers.
Diff:
---
libstdc++-v3/include/bits/cpp_type_traits.h | 33 -----------------------------
1 file changed, 33 deletions(-)
diff --git a/libstdc++-v3/include/bits/cpp_type_traits.h b/libstdc++-v3/include/bits/cpp_type_traits.h
index 4d83b9472e6..abe0c7603e3 100644
--- a/libstdc++-v3/include/bits/cpp_type_traits.h
+++ b/libstdc++-v3/include/bits/cpp_type_traits.h
@@ -343,31 +343,6 @@ __INT_N(__GLIBCXX_TYPE_INT_N_3)
};
#endif
- //
- // Pointer types
- //
-#if _GLIBCXX_USE_BUILTIN_TRAIT(__is_pointer)
- template<typename _Tp, bool _IsPtr = __is_pointer(_Tp)>
- struct __is_pointer : __truth_type<_IsPtr>
- {
- enum { __value = _IsPtr };
- };
-#else
- template<typename _Tp>
- struct __is_pointer
- {
- enum { __value = 0 };
- typedef __false_type __type;
- };
-
- template<typename _Tp>
- struct __is_pointer<_Tp*>
- {
- enum { __value = 1 };
- typedef __true_type __type;
- };
-#endif
-
//
// An arithmetic type is an integer type or a floating point type
//
@@ -376,14 +351,6 @@ __INT_N(__GLIBCXX_TYPE_INT_N_3)
: public __traitor<__is_integer<_Tp>, __is_floating<_Tp> >
{ };
- //
- // A scalar type is an arithmetic type or a pointer type
- //
- template<typename _Tp>
- struct __is_scalar
- : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> >
- { };
-
//
// For use in std::copy and std::find overloads for streambuf iterators.
//
More information about the Libstdc++-cvs
mailing list