- template<class R, class ...Args>
- int call(unsigned int proc, R & r, const Args & ...a1);
- private:
- template<class R> int call_m(unsigned int proc, R & r, const marshall & req);
+ template<class P, class R, class ...Args>
+ int call(rpc_protocol::proc_t<P> proc, R & r, const Args & ...a1) {
+ static_assert(is_valid_call<P, R, Args...>::value, "RSM method invoked with incorrect argument types");
+ return call_m(proc.id, r, marshall(a1...));
+ }