Commit 0238e6c9 by Daniel Frey Committed by Paolo Carlini

functional (_Bind<_Functor(_Bound_args...)>:: operator()): "Pass" _Result to __call*.

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
parent 1cfd38be
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> 2010-01-18 Johannes Singler <singler@kit.edu>
* include/parallel/base.h (__unary_negate): Correct comment. * include/parallel/base.h (__unary_negate): Correct comment.
......
...@@ -1092,11 +1092,8 @@ namespace std ...@@ -1092,11 +1092,8 @@ namespace std
tuple<_Bound_args...> _M_bound_args; tuple<_Bound_args...> _M_bound_args;
// Call unqualified // Call unqualified
template<typename... _Args, int... _Indexes> template<typename _Result, typename... _Args, int... _Indexes>
typename result_of< _Result
_Functor(typename result_of<_Mu<_Bound_args>
(_Bound_args&, tuple<_Args...>&&)>::type...)
>::type
__call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>)
{ {
return _M_f(_Mu<_Bound_args>() return _M_f(_Mu<_Bound_args>()
...@@ -1104,11 +1101,8 @@ namespace std ...@@ -1104,11 +1101,8 @@ namespace std
} }
// Call as const // Call as const
template<typename... _Args, int... _Indexes> template<typename _Result, typename... _Args, int... _Indexes>
typename result_of< _Result
const _Functor(typename result_of<_Mu<_Bound_args>
(const _Bound_args&, tuple<_Args...>&&)
>::type...)>::type
__call_c(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const __call_c(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const
{ {
return _M_f(_Mu<_Bound_args>() return _M_f(_Mu<_Bound_args>()
...@@ -1117,11 +1111,8 @@ namespace std ...@@ -1117,11 +1111,8 @@ namespace std
#if 0 #if 0
// Call as volatile // Call as volatile
template<typename... _Args, int... _Indexes> template<typename _Result, typename... _Args, int... _Indexes>
typename result_of< _Result
volatile _Functor(typename result_of<_Mu<_Bound_args>
(volatile _Bound_args&, tuple<_Args...>&&)
>::type...)>::type
__call_v(tuple<_Args...>&& __args, __call_v(tuple<_Args...>&& __args,
_Index_tuple<_Indexes...>) volatile _Index_tuple<_Indexes...>) volatile
{ {
...@@ -1130,12 +1121,8 @@ namespace std ...@@ -1130,12 +1121,8 @@ namespace std
} }
// Call as const volatile // Call as const volatile
template<typename... _Args, int... _Indexes> template<typename _Result, typename... _Args, int... _Indexes>
typename result_of< _Result
const volatile _Functor(typename result_of<_Mu<_Bound_args>
(const volatile _Bound_args&,
tuple<_Args...>&&)
>::type...)>::type
__call_c_v(tuple<_Args...>&& __args, __call_c_v(tuple<_Args...>&& __args,
_Index_tuple<_Indexes...>) const volatile _Index_tuple<_Indexes...>) const volatile
{ {
...@@ -1158,8 +1145,9 @@ namespace std ...@@ -1158,8 +1145,9 @@ namespace std
_Result _Result
operator()(_Args&&... __args) operator()(_Args&&... __args)
{ {
return this->__call(tuple<_Args...>(std::forward<_Args>(__args)...), return this->__call<_Result>(tuple<_Args...>
_Bound_indexes()); (std::forward<_Args>(__args)...),
_Bound_indexes());
} }
// Call as const // Call as const
...@@ -1170,9 +1158,9 @@ namespace std ...@@ -1170,9 +1158,9 @@ namespace std
_Result _Result
operator()(_Args&&... __args) const operator()(_Args&&... __args) const
{ {
return this->__call_c(tuple<_Args...> return this->__call_c<_Result>(tuple<_Args...>
(std::forward<_Args>(__args)...), (std::forward<_Args>(__args)...),
_Bound_indexes()); _Bound_indexes());
} }
#if 0 #if 0
...@@ -1184,9 +1172,9 @@ namespace std ...@@ -1184,9 +1172,9 @@ namespace std
_Result _Result
operator()(_Args&&... __args) volatile operator()(_Args&&... __args) volatile
{ {
return this->__call_v(tuple<_Args...> return this->__call_v<_Result>(tuple<_Args...>
(std::forward<_Args>(__args)...), (std::forward<_Args>(__args)...),
_Bound_indexes()); _Bound_indexes());
} }
// Call as const volatile // Call as const volatile
...@@ -1197,9 +1185,9 @@ namespace std ...@@ -1197,9 +1185,9 @@ namespace std
_Result _Result
operator()(_Args&&... __args) const volatile operator()(_Args&&... __args) const volatile
{ {
return this->__call_c_v(tuple<_Args...> return this->__call_c_v<_Result>(tuple<_Args...>
(std::forward<_Args>(__args)...), (std::forward<_Args>(__args)...),
_Bound_indexes()); _Bound_indexes());
} }
#endif #endif
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment