aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2024-06-19 17:26:37 +0100
committerJonathan Wakely <jwakely@redhat.com>2024-06-21 17:07:00 +0100
commit52a82359073653e312aaa5703f7e0ce339588961 (patch)
tree1d827ecd1b7c4e4ee5e70dffc3dda31fc542a1a6
parent51cc77672add517123ef9ea45335b08442e8d57c (diff)
downloadgcc-52a82359073653e312aaa5703f7e0ce339588961.zip
gcc-52a82359073653e312aaa5703f7e0ce339588961.tar.gz
gcc-52a82359073653e312aaa5703f7e0ce339588961.tar.bz2
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.
-rw-r--r--libstdc++-v3/include/bits/cpp_type_traits.h33
1 files changed, 0 insertions, 33 deletions
diff --git a/libstdc++-v3/include/bits/cpp_type_traits.h b/libstdc++-v3/include/bits/cpp_type_traits.h
index 4d83b94..abe0c76 100644
--- a/libstdc++-v3/include/bits/cpp_type_traits.h
+++ b/libstdc++-v3/include/bits/cpp_type_traits.h
@@ -344,31 +344,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
//
template<typename _Tp>
@@ -377,14 +352,6 @@ __INT_N(__GLIBCXX_TYPE_INT_N_3)
{ };
//
- // 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.
//
template<typename _Tp>