This moves __is_array_convertible so it's not between __is_nothrow_convertible and its helper, since it isn't related to those.
* include/std/type_traits (__is_array_convertible): Move definition to immediately after is_convertible. Tested powerpc64le-linux, committed to master.
commit 0302a2de7f143bc4ac2a963761abc684b4dd6ddb Author: Jonathan Wakely <jwak...@redhat.com> Date: Fri Mar 27 22:53:04 2020 +0000 libstdc++: Move definition earlier in file This moves __is_array_convertible so it's not between __is_nothrow_convertible and its helper, since it isn't related to those. * include/std/type_traits (__is_array_convertible): Move definition to immediately after is_convertible. diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits index 68abf148a38..65b9902b56d 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -1436,6 +1436,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION : public __is_convertible_helper<_From, _To>::type { }; + // helper trait for unique_ptr<T[]>, shared_ptr<T[]>, and span<T, N> + template<typename _ToElementType, typename _FromElementType> + using __is_array_convertible + = is_convertible<_FromElementType(*)[], _ToElementType(*)[]>; + template<typename _From, typename _To, bool = __or_<is_void<_From>, is_function<_To>, is_array<_To>>::value> @@ -1465,11 +1470,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION }; #pragma GCC diagnostic pop - // helper trait for unique_ptr<T[]>, shared_ptr<T[]>, and span<T, N> - template<typename _ToElementType, typename _FromElementType> - using __is_array_convertible - = is_convertible<_FromElementType(*)[], _ToElementType(*)[]>; - // is_nothrow_convertible for C++11 template<typename _From, typename _To> struct __is_nothrow_convertible