diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2024-06-19 11:19:58 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2024-06-21 17:07:00 +0100 |
commit | 51cc77672add517123ef9ea45335b08442e8d57c (patch) | |
tree | ee2a086d67d5e29953a758d0fee42d27b14d6d95 | |
parent | 5f10547e021db3a4a34382cd067668f9ef97fdeb (diff) | |
download | gcc-51cc77672add517123ef9ea45335b08442e8d57c.zip gcc-51cc77672add517123ef9ea45335b08442e8d57c.tar.gz gcc-51cc77672add517123ef9ea45335b08442e8d57c.tar.bz2 |
libstdc++: Remove std::__is_void class template [PR115497]
This removes the std::__is_void trait, as it conflicts with a Clang
built-in. There is only one use of the trait, which can easily be
replaced by simpler code.
Although Clang has a hack to make the class template work despite using
a reserved name, removing std::__is_void will allow that hack to be
dropped at some future date.
libstdc++-v3/ChangeLog:
PR libstdc++/115497
* include/bits/cpp_type_traits.h (__is_void): Remove.
* include/debug/helper_functions.h (_Distance_traits):
Adjust partial specialization to match void directly, instead of
using __is_void<T>::__type and matching __true_type.
-rw-r--r-- | libstdc++-v3/include/bits/cpp_type_traits.h | 15 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/helper_functions.h | 5 |
2 files changed, 2 insertions, 18 deletions
diff --git a/libstdc++-v3/include/bits/cpp_type_traits.h b/libstdc++-v3/include/bits/cpp_type_traits.h index 6834dee..4d83b94 100644 --- a/libstdc++-v3/include/bits/cpp_type_traits.h +++ b/libstdc++-v3/include/bits/cpp_type_traits.h @@ -105,21 +105,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION typedef __true_type __type; }; - // Holds if the template-argument is a void type. - template<typename _Tp> - struct __is_void - { - enum { __value = 0 }; - typedef __false_type __type; - }; - - template<> - struct __is_void<void> - { - enum { __value = 1 }; - typedef __true_type __type; - }; - // // Integer types // diff --git a/libstdc++-v3/include/debug/helper_functions.h b/libstdc++-v3/include/debug/helper_functions.h index 5474399..d686a29 100644 --- a/libstdc++-v3/include/debug/helper_functions.h +++ b/libstdc++-v3/include/debug/helper_functions.h @@ -66,13 +66,12 @@ namespace __gnu_debug typedef typename std::iterator_traits<_Iterator>::difference_type _ItDiffType; - template<typename _DiffType, - typename = typename std::__is_void<_DiffType>::__type> + template<typename _DiffType, typename = _DiffType> // PR c++/85282 struct _DiffTraits { typedef _DiffType __type; }; template<typename _DiffType> - struct _DiffTraits<_DiffType, std::__true_type> + struct _DiffTraits<_DiffType, void> { typedef std::ptrdiff_t __type; }; typedef typename _DiffTraits<_ItDiffType>::__type _DiffType; |