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:
Marshall Clow 2014-06-24 00:46:19 +00:00
parent 84553d8f1f
commit f9af6140ff
5 changed files with 25 additions and 25 deletions

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -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))...)
{ {
} }

View File

@ -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)))
{} {}