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

Reply via email to