diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2024-06-19 17:26:37 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2024-06-21 17:07:00 +0100 |
commit | 52a82359073653e312aaa5703f7e0ce339588961 (patch) | |
tree | 1d827ecd1b7c4e4ee5e70dffc3dda31fc542a1a6 | |
parent | 51cc77672add517123ef9ea45335b08442e8d57c (diff) | |
download | gcc-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.h | 33 |
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> |