Corrected an inconsistency with recent changes in tuple, and perfect forwarding within bind

llvm-svn: 115930
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: 0f444b3b1650031f293985bb4da98cd60b03acfa
diff --git a/include/functional b/include/functional
index 3205ee3..8e508f9 100644
--- a/include/functional
+++ b/include/functional
@@ -1683,7 +1683,7 @@
         {
             // compiler bug workaround
             return __apply_functor(__f_, __bound_args_, __indices(),
-                                  tuple<_Args&&...>(__args...));
+                                  tuple<_Args&&...>(_STD::forward<_Args>(__args)...));
         }
 
     template <class ..._Args>
@@ -1692,7 +1692,7 @@
         operator()(_Args&& ...__args) const
         {
             return __apply_functor(__f_, __bound_args_, __indices(),
-                                   tuple<_Args&&...>(__args...));
+                                   tuple<_Args&&...>(_STD::forward<_Args>(__args)...));
         }
 };