Some calls to get<>() were qualified. Some were not. Qualify them all. Fixes bug #20092. Thanks to Agustín Bergé for the bug report and the fix.
llvm-svn: 211563
This commit is contained in:
parent
84553d8f1f
commit
f9af6140ff
|
@ -1911,7 +1911,7 @@ inline _LIBCPP_INLINE_VISIBILITY
|
||||||
typename __mu_return1<true, _Ti, _Uj...>::type
|
typename __mu_return1<true, _Ti, _Uj...>::type
|
||||||
__mu_expand(_Ti& __ti, tuple<_Uj...>&& __uj, __tuple_indices<_Indx...>)
|
__mu_expand(_Ti& __ti, tuple<_Uj...>&& __uj, __tuple_indices<_Indx...>)
|
||||||
{
|
{
|
||||||
__ti(_VSTD::forward<typename tuple_element<_Indx, _Uj>::type>(get<_Indx>(__uj))...);
|
__ti(_VSTD::forward<typename tuple_element<_Indx, _Uj>::type>(_VSTD::get<_Indx>(__uj))...);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class _Ti, class ..._Uj>
|
template <class _Ti, class ..._Uj>
|
||||||
|
@ -1947,9 +1947,9 @@ __mu(_Ti&, _Uj& __uj)
|
||||||
{
|
{
|
||||||
const size_t _Indx = is_placeholder<_Ti>::value - 1;
|
const size_t _Indx = is_placeholder<_Ti>::value - 1;
|
||||||
// compiler bug workaround
|
// compiler bug workaround
|
||||||
typename tuple_element<_Indx, _Uj>::type __t = get<_Indx>(__uj);
|
typename tuple_element<_Indx, _Uj>::type __t = _VSTD::get<_Indx>(__uj);
|
||||||
return __t;
|
return __t;
|
||||||
// return _VSTD::forward<typename tuple_element<_Indx, _Uj>::type>(get<_Indx>(__uj));
|
// return _VSTD::forward<typename tuple_element<_Indx, _Uj>::type>(_VSTD::get<_Indx>(__uj));
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class _Ti, class _Uj>
|
template <class _Ti, class _Uj>
|
||||||
|
@ -2040,7 +2040,7 @@ typename __bind_return<_Fp, _BoundArgs, _Args>::type
|
||||||
__apply_functor(_Fp& __f, _BoundArgs& __bound_args, __tuple_indices<_Indx...>,
|
__apply_functor(_Fp& __f, _BoundArgs& __bound_args, __tuple_indices<_Indx...>,
|
||||||
_Args&& __args)
|
_Args&& __args)
|
||||||
{
|
{
|
||||||
return __invoke(__f, __mu(get<_Indx>(__bound_args), __args)...);
|
return __invoke(__f, __mu(_VSTD::get<_Indx>(__bound_args), __args)...);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class _Fp, class ..._BoundArgs>
|
template<class _Fp, class ..._BoundArgs>
|
||||||
|
|
|
@ -1858,7 +1858,7 @@ inline _LIBCPP_INLINE_VISIBILITY
|
||||||
typename __invoke_of<_Ti&, _Uj...>::type
|
typename __invoke_of<_Ti&, _Uj...>::type
|
||||||
__mu_expand(_Ti& __ti, tuple<_Uj...>& __uj, __tuple_indices<_Indx...>)
|
__mu_expand(_Ti& __ti, tuple<_Uj...>& __uj, __tuple_indices<_Indx...>)
|
||||||
{
|
{
|
||||||
return __ti(_VSTD::forward<_Uj>(get<_Indx>(__uj))...);
|
return __ti(_VSTD::forward<_Uj>(_VSTD::get<_Indx>(__uj))...);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class _Ti, class ..._Uj>
|
template <class _Ti, class ..._Uj>
|
||||||
|
@ -1893,7 +1893,7 @@ typename enable_if
|
||||||
__mu(_Ti&, _Uj& __uj)
|
__mu(_Ti&, _Uj& __uj)
|
||||||
{
|
{
|
||||||
const size_t _Indx = is_placeholder<_Ti>::value - 1;
|
const size_t _Indx = is_placeholder<_Ti>::value - 1;
|
||||||
return _VSTD::forward<typename tuple_element<_Indx, _Uj>::type>(get<_Indx>(__uj));
|
return _VSTD::forward<typename tuple_element<_Indx, _Uj>::type>(_VSTD::get<_Indx>(__uj));
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class _Ti, class _Uj>
|
template <class _Ti, class _Uj>
|
||||||
|
@ -2020,7 +2020,7 @@ typename __bind_return<_Fp, _BoundArgs, _Args>::type
|
||||||
__apply_functor(_Fp& __f, _BoundArgs& __bound_args, __tuple_indices<_Indx...>,
|
__apply_functor(_Fp& __f, _BoundArgs& __bound_args, __tuple_indices<_Indx...>,
|
||||||
_Args&& __args)
|
_Args&& __args)
|
||||||
{
|
{
|
||||||
return __invoke(__f, __mu(get<_Indx>(__bound_args), __args)...);
|
return __invoke(__f, __mu(_VSTD::get<_Indx>(__bound_args), __args)...);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class _Fp, class ..._BoundArgs>
|
template<class _Fp, class ..._BoundArgs>
|
||||||
|
|
|
@ -2005,8 +2005,8 @@ public:
|
||||||
tuple<_Args2...> __second_args,
|
tuple<_Args2...> __second_args,
|
||||||
__tuple_indices<_I1...>,
|
__tuple_indices<_I1...>,
|
||||||
__tuple_indices<_I2...>)
|
__tuple_indices<_I2...>)
|
||||||
: __first_(_VSTD::forward<_Args1>(get<_I1>(__first_args))...),
|
: __first_(_VSTD::forward<_Args1>(_VSTD::get<_I1>(__first_args))...),
|
||||||
__second_(_VSTD::forward<_Args2>(get<_I2>(__second_args))...)
|
__second_(_VSTD::forward<_Args2>(_VSTD::get<_I2>(__second_args))...)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
#endif // _LIBCPP_HAS_NO_VARIADICS
|
#endif // _LIBCPP_HAS_NO_VARIADICS
|
||||||
|
@ -2096,8 +2096,8 @@ public:
|
||||||
tuple<_Args2...> __second_args,
|
tuple<_Args2...> __second_args,
|
||||||
__tuple_indices<_I1...>,
|
__tuple_indices<_I1...>,
|
||||||
__tuple_indices<_I2...>)
|
__tuple_indices<_I2...>)
|
||||||
: _T1(_VSTD::forward<_Args1>(get<_I1>(__first_args))...),
|
: _T1(_VSTD::forward<_Args1>(_VSTD::get<_I1>(__first_args))...),
|
||||||
__second_(_VSTD::forward<_Args2>(get<_I2>(__second_args))...)
|
__second_(_VSTD::forward<_Args2>(_VSTD::get<_I2>(__second_args))...)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
#endif // _LIBCPP_HAS_NO_VARIADICS
|
#endif // _LIBCPP_HAS_NO_VARIADICS
|
||||||
|
@ -2188,8 +2188,8 @@ public:
|
||||||
tuple<_Args2...> __second_args,
|
tuple<_Args2...> __second_args,
|
||||||
__tuple_indices<_I1...>,
|
__tuple_indices<_I1...>,
|
||||||
__tuple_indices<_I2...>)
|
__tuple_indices<_I2...>)
|
||||||
: _T2(_VSTD::forward<_Args2>(get<_I2>(__second_args))...),
|
: _T2(_VSTD::forward<_Args2>(_VSTD::get<_I2>(__second_args))...),
|
||||||
__first_(_VSTD::forward<_Args1>(get<_I1>(__first_args))...)
|
__first_(_VSTD::forward<_Args1>(_VSTD::get<_I1>(__first_args))...)
|
||||||
|
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
@ -2278,8 +2278,8 @@ public:
|
||||||
tuple<_Args2...> __second_args,
|
tuple<_Args2...> __second_args,
|
||||||
__tuple_indices<_I1...>,
|
__tuple_indices<_I1...>,
|
||||||
__tuple_indices<_I2...>)
|
__tuple_indices<_I2...>)
|
||||||
: _T1(_VSTD::forward<_Args1>(get<_I1>(__first_args))...),
|
: _T1(_VSTD::forward<_Args1>(_VSTD::get<_I1>(__first_args))...),
|
||||||
_T2(_VSTD::forward<_Args2>(get<_I2>(__second_args))...)
|
_T2(_VSTD::forward<_Args2>(_VSTD::get<_I2>(__second_args))...)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
#endif // _LIBCPP_HAS_NO_VARIADICS
|
#endif // _LIBCPP_HAS_NO_VARIADICS
|
||||||
|
|
|
@ -854,7 +854,7 @@ struct __tuple_equal
|
||||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
|
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
|
||||||
bool operator()(const _Tp& __x, const _Up& __y)
|
bool operator()(const _Tp& __x, const _Up& __y)
|
||||||
{
|
{
|
||||||
return __tuple_equal<_Ip - 1>()(__x, __y) && get<_Ip-1>(__x) == get<_Ip-1>(__y);
|
return __tuple_equal<_Ip - 1>()(__x, __y) && _VSTD::get<_Ip-1>(__x) == _VSTD::get<_Ip-1>(__y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -893,7 +893,7 @@ struct __tuple_less
|
||||||
bool operator()(const _Tp& __x, const _Up& __y)
|
bool operator()(const _Tp& __x, const _Up& __y)
|
||||||
{
|
{
|
||||||
return __tuple_less<_Ip-1>()(__x, __y) ||
|
return __tuple_less<_Ip-1>()(__x, __y) ||
|
||||||
(!__tuple_less<_Ip-1>()(__y, __x) && get<_Ip-1>(__x) < get<_Ip-1>(__y));
|
(!__tuple_less<_Ip-1>()(__y, __x) && _VSTD::get<_Ip-1>(__x) < _VSTD::get<_Ip-1>(__y));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1042,8 +1042,8 @@ struct __tuple_cat<tuple<_Types...>, __tuple_indices<_I0...>, __tuple_indices<_J
|
||||||
typename __tuple_cat_return_ref<tuple<_Types...>&&, _Tuple0&&>::type
|
typename __tuple_cat_return_ref<tuple<_Types...>&&, _Tuple0&&>::type
|
||||||
operator()(tuple<_Types...> __t, _Tuple0&& __t0)
|
operator()(tuple<_Types...> __t, _Tuple0&& __t0)
|
||||||
{
|
{
|
||||||
return forward_as_tuple(_VSTD::forward<_Types>(get<_I0>(__t))...,
|
return forward_as_tuple(_VSTD::forward<_Types>(_VSTD::get<_I0>(__t))...,
|
||||||
get<_J0>(_VSTD::forward<_Tuple0>(__t0))...);
|
_VSTD::get<_J0>(_VSTD::forward<_Tuple0>(__t0))...);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class _Tuple0, class _Tuple1, class ..._Tuples>
|
template <class _Tuple0, class _Tuple1, class ..._Tuples>
|
||||||
|
@ -1058,8 +1058,8 @@ struct __tuple_cat<tuple<_Types...>, __tuple_indices<_I0...>, __tuple_indices<_J
|
||||||
typename __make_tuple_indices<sizeof ...(_Types) + tuple_size<_T0>::value>::type,
|
typename __make_tuple_indices<sizeof ...(_Types) + tuple_size<_T0>::value>::type,
|
||||||
typename __make_tuple_indices<tuple_size<_T1>::value>::type>()
|
typename __make_tuple_indices<tuple_size<_T1>::value>::type>()
|
||||||
(forward_as_tuple(
|
(forward_as_tuple(
|
||||||
_VSTD::forward<_Types>(get<_I0>(__t))...,
|
_VSTD::forward<_Types>(_VSTD::get<_I0>(__t))...,
|
||||||
get<_J0>(_VSTD::forward<_Tuple0>(__t0))...
|
_VSTD::get<_J0>(_VSTD::forward<_Tuple0>(__t0))...
|
||||||
),
|
),
|
||||||
_VSTD::forward<_Tuple1>(__t1),
|
_VSTD::forward<_Tuple1>(__t1),
|
||||||
_VSTD::forward<_Tuples>(__tpls)...);
|
_VSTD::forward<_Tuples>(__tpls)...);
|
||||||
|
@ -1088,8 +1088,8 @@ inline _LIBCPP_INLINE_VISIBILITY
|
||||||
pair<_T1, _T2>::pair(piecewise_construct_t,
|
pair<_T1, _T2>::pair(piecewise_construct_t,
|
||||||
tuple<_Args1...>& __first_args, tuple<_Args2...>& __second_args,
|
tuple<_Args1...>& __first_args, tuple<_Args2...>& __second_args,
|
||||||
__tuple_indices<_I1...>, __tuple_indices<_I2...>)
|
__tuple_indices<_I1...>, __tuple_indices<_I2...>)
|
||||||
: first(_VSTD::forward<_Args1>(get<_I1>( __first_args))...),
|
: first(_VSTD::forward<_Args1>(_VSTD::get<_I1>( __first_args))...),
|
||||||
second(_VSTD::forward<_Args2>(get<_I2>(__second_args))...)
|
second(_VSTD::forward<_Args2>(_VSTD::get<_I2>(__second_args))...)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -345,9 +345,9 @@ struct _LIBCPP_TYPE_VIS_ONLY pair
|
||||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
|
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
|
||||||
pair(_Tuple&& __p)
|
pair(_Tuple&& __p)
|
||||||
: first(_VSTD::forward<typename tuple_element<0,
|
: first(_VSTD::forward<typename tuple_element<0,
|
||||||
typename __make_tuple_types<_Tuple>::type>::type>(get<0>(__p))),
|
typename __make_tuple_types<_Tuple>::type>::type>(_VSTD::get<0>(__p))),
|
||||||
second(_VSTD::forward<typename tuple_element<1,
|
second(_VSTD::forward<typename tuple_element<1,
|
||||||
typename __make_tuple_types<_Tuple>::type>::type>(get<1>(__p)))
|
typename __make_tuple_types<_Tuple>::type>::type>(_VSTD::get<1>(__p)))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue