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");
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");