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.
llvm-svn: 124241
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: 175a104028301d7e9fe7a1c046fafbe5fd55b45f
diff --git a/include/functional b/include/functional
index a5a7dc2..73c6c59 100644
--- a/include/functional
+++ b/include/functional
@@ -1559,10 +1559,7 @@
__mu(_Ti&, _Uj& __uj)
{
const size_t _Indx = is_placeholder<_Ti>::value - 1;
- // compiler bug workaround
- typename tuple_element<_Indx, _Uj>::type __t = get<_Indx>(__uj);
- return __t;
-// return _STD::forward<typename tuple_element<_Indx, _Uj>::type>(get<_Indx>(__uj));
+ return _STD::forward<typename tuple_element<_Indx, _Uj>::type>(get<_Indx>(__uj));
}
template <class _Ti, class _Uj>