- template<class F, class C=void> void reg(int proc, F f, C *c=nullptr);
+ template<class P, class F, class C=void> void reg(rpc_protocol::proc_t<P> proc, F f, C *c=nullptr) {
+ static_assert(is_valid_registration<P, F>::value, "RSM handler registered with incorrect argument types");
+ reg1(proc.id, marshalled_func<F>::wrap(f, c));
+ }