#ifndef seafire__common__invoke_hxx_ #define seafire__common__invoke_hxx_ #include #include namespace seafire::common { template Ret do_invoke(T& target, server::request_t& req, Direct const&... direct, Ret (T::*func)(Direct const&..., Params const&...)); template Ret invoke(T& target, server::request_t& req, Ret (T::*func)(Params const&...), Direct const&... direct); template Ret do_invoke(T const& target, server::request_t& req, Direct const&... direct, Ret (T::*func)(Direct const&..., Params const&...) const); template Ret invoke(T const& target, server::request_t& req, Ret (T::*func)(Params const&...) const, Direct const&... direct); template Ret do_invoke(server::request_t& req, Direct&&... direct, Ret (*func)(Direct..., Params...)); template Ret invoke(server::request_t& req, Ret (*func)(Params...), Direct&&... direct); } // namespace seafire::common #include #endif