]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
functional (_Bind<_Functor(_Bound_args...)>:: operator()): "Pass" _Result to __call*.
authorDaniel Frey <d.frey@gmx.de>
Mon, 18 Jan 2010 10:41:30 +0000 (10:41 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Mon, 18 Jan 2010 10:41:30 +0000 (10:41 +0000)
2010-01-18  Daniel Frey  <d.frey@gmx.de>

* include/std/functional (_Bind<_Functor(_Bound_args...)>::
operator()): "Pass" _Result to __call*.
(_Bind<_Functor(_Bound_args...)>::__call*): Adjust, simplify.

From-SVN: r156007

libstdc++-v3/ChangeLog
libstdc++-v3/include/std/functional

index 68b31e01e5870e3cabac2d05da1f8320b7a5723d..934e65cdb1d2538997caea940ad6a72b50ccc6a4 100644 (file)
@@ -1,3 +1,9 @@
+2010-01-18  Daniel Frey  <d.frey@gmx.de>
+
+       * include/std/functional (_Bind<_Functor(_Bound_args...)>::
+       operator()): "Pass" _Result to __call*.
+       (_Bind<_Functor(_Bound_args...)>::__call*): Adjust, simplify.
+
 2010-01-18  Johannes Singler  <singler@kit.edu>
 
        * include/parallel/base.h (__unary_negate): Correct comment.
index 5444f3d1f1ce4cef74656eadd094b13242d5cac9..f28490ad0447e30d2dcf658586b4b082a5327263 100644 (file)
@@ -1092,11 +1092,8 @@ namespace std
       tuple<_Bound_args...> _M_bound_args;
 
       // Call unqualified
-      template<typename... _Args, int... _Indexes>
-        typename result_of<
-                   _Functor(typename result_of<_Mu<_Bound_args> 
-                            (_Bound_args&, tuple<_Args...>&&)>::type...)
-                 >::type
+      template<typename _Result, typename... _Args, int... _Indexes>
+        _Result
         __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>)
         {
           return _M_f(_Mu<_Bound_args>()
@@ -1104,11 +1101,8 @@ namespace std
         }
 
       // Call as const
-      template<typename... _Args, int... _Indexes>
-        typename result_of<
-                   const _Functor(typename result_of<_Mu<_Bound_args> 
-                                    (const _Bound_args&, tuple<_Args...>&&)
-                                  >::type...)>::type
+      template<typename _Result, typename... _Args, int... _Indexes>
+        _Result
         __call_c(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const
         {
           return _M_f(_Mu<_Bound_args>()
@@ -1117,11 +1111,8 @@ namespace std
 
 #if 0
       // Call as volatile
-      template<typename... _Args, int... _Indexes>
-        typename result_of<
-                   volatile _Functor(typename result_of<_Mu<_Bound_args> 
-                                    (volatile _Bound_args&, tuple<_Args...>&&)
-                                  >::type...)>::type
+      template<typename _Result, typename... _Args, int... _Indexes>
+        _Result
         __call_v(tuple<_Args...>&& __args, 
                 _Index_tuple<_Indexes...>) volatile
         {
@@ -1130,12 +1121,8 @@ namespace std
         }
 
       // Call as const volatile
-      template<typename... _Args, int... _Indexes>
-        typename result_of<
-                   const volatile _Functor(typename result_of<_Mu<_Bound_args> 
-                                    (const volatile _Bound_args&, 
-                                     tuple<_Args...>&&)
-                                  >::type...)>::type
+      template<typename _Result, typename... _Args, int... _Indexes>
+        _Result
         __call_c_v(tuple<_Args...>&& __args, 
                   _Index_tuple<_Indexes...>) const volatile
         {
@@ -1158,8 +1145,9 @@ namespace std
         _Result
         operator()(_Args&&... __args)
         {
-          return this->__call(tuple<_Args...>(std::forward<_Args>(__args)...),
-                             _Bound_indexes());
+          return this->__call<_Result>(tuple<_Args...>
+                                      (std::forward<_Args>(__args)...),
+                                       _Bound_indexes());
         }
 
       // Call as const
@@ -1170,9 +1158,9 @@ namespace std
         _Result
         operator()(_Args&&... __args) const
         {
-          return this->__call_c(tuple<_Args...>
-                               (std::forward<_Args>(__args)...),
-                               _Bound_indexes());
+          return this->__call_c<_Result>(tuple<_Args...>
+                                         (std::forward<_Args>(__args)...),
+                                         _Bound_indexes());
         }
 
 #if 0
@@ -1184,9 +1172,9 @@ namespace std
         _Result
         operator()(_Args&&... __args) volatile
         {
-          return this->__call_v(tuple<_Args...>
-                               (std::forward<_Args>(__args)...),
-                               _Bound_indexes());
+          return this->__call_v<_Result>(tuple<_Args...>
+                                         (std::forward<_Args>(__args)...),
+                                         _Bound_indexes());
         }
 
       // Call as const volatile
@@ -1197,9 +1185,9 @@ namespace std
         _Result
         operator()(_Args&&... __args) const volatile
         {
-          return this->__call_c_v(tuple<_Args...>
-                                 (std::forward<_Args>(__args)...),
-                                 _Bound_indexes());
+          return this->__call_c_v<_Result>(tuple<_Args...>
+                                           (std::forward<_Args>(__args)...),
+                                           _Bound_indexes());
         }
 #endif
     };