diff options
Diffstat (limited to 'sigc++/functors/mem_fun.h')
-rw-r--r-- | sigc++/functors/mem_fun.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sigc++/functors/mem_fun.h b/sigc++/functors/mem_fun.h index 1b74c3d..1ebccbb 100644 --- a/sigc++/functors/mem_fun.h +++ b/sigc++/functors/mem_fun.h @@ -22,6 +22,7 @@ #include <sigc++/limit_reference.h> #include <sigc++/member_method_trait.h> #include <functional> +#include <utility> // implementation notes: // - we do not use bind here, because it would introduce @@ -150,8 +151,7 @@ public: decltype(auto) operator()(type_trait_take_t<T_arg>... a) const { return std::invoke( - this->func_ptr_, obj_.invoke(), - std::forward<type_trait_take_t<T_arg>>(a)...); + this->func_ptr_, obj_.invoke(), std::forward<type_trait_take_t<T_arg>>(a)...); } // protected: @@ -187,7 +187,8 @@ struct visitor<bound_mem_functor<T_func, T_arg...>> * @ingroup mem_fun */ template<typename T_return, typename T_obj, typename... T_arg> -inline decltype(auto) mem_fun(T_return (T_obj::*func)(T_arg...)) +inline decltype(auto) +mem_fun(T_return (T_obj::*func)(T_arg...)) { return mem_functor<T_return (T_obj::*)(T_arg...), T_arg...>(func); } @@ -212,7 +213,8 @@ mem_fun(T_return (T_obj::*func)(T_arg...) const) * @ingroup mem_fun */ template<typename T_return, typename T_obj, typename... T_arg> -inline decltype(auto) mem_fun(T_return (T_obj::*func)(T_arg...) volatile) +inline decltype(auto) +mem_fun(T_return (T_obj::*func)(T_arg...) volatile) { return mem_functor<T_return (T_obj::*)(T_arg...) volatile, T_arg...>(func); } |