You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
template
using __collector_t =
typename __internal::__policy_traits<typename
std::decay<_ExecutionPolicy>::type>::__collector_type;
N.B. collector_t alias appears to be completely unused, and no specialization of __policy_traits defines __collector_type. So ignore that one, but the same problem exists for:
template
using __allow_vector =
typename __internal::__policy_traits<typename std::decay<_ExecutionPolicy>::type>::__allow_vector;
template
using __allow_unsequenced =
typename __internal::__policy_traits<typename std::decay<_ExecutionPolicy>::type>::__allow_unsequenced;
template
using __allow_parallel =
typename __internal::__policy_traits<typename std::decay<_ExecutionPolicy>::type>::__allow_parallel;
These also aren't used, and refer to non-existent members, but they could be used (if they were fixed), see Bug 47602.
Extended Description
The members of __internal::__policy_traits aren't using reserved names:
template <>
struct __policy_traits<sequenced_policy>
{
typedef std::false_type allow_parallel;
typedef std::false_type allow_unsequenced;
typedef std::false_type allow_vector;
};
This means the alias templates following it are broken:
template
using __collector_t =
typename __internal::__policy_traits<typename std::decay<_ExecutionPolicy>::type>::__collector_type;
This is invalid, because __collector_type doesn't exist, the member is really called collector_type (although it shouldn't be).
And later in that file:
template <typename policy, typename... _IteratorTypes>
struct __prefer_unsequenced_tag
and
template <typename policy, typename... _IteratorTypes>
struct __prefer_parallel_tag
These use "policy" which is not a reserved name either.
The text was updated successfully, but these errors were encountered: