Remove an (incorrect) compiler workaround in the __mu function. The

workaround relied on rvalue references binding to non-function
lvalues, while the original formulation (with std::forward) does the
right thing.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@124241 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Douglas Gregor 2011-01-25 23:11:15 +00:00
parent 4ff9d3599c
commit 5ea2e37c08

View File

@ -1559,10 +1559,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;
// compiler bug workaround return _STD::forward<typename tuple_element<_Indx, _Uj>::type>(get<_Indx>(__uj));
typename tuple_element<_Indx, _Uj>::type __t = get<_Indx>(__uj);
return __t;
// return _STD::forward<typename tuple_element<_Indx, _Uj>::type>(get<_Indx>(__uj));
} }
template <class _Ti, class _Uj> template <class _Ti, class _Uj>