void pack_arg(message& msg, Arg&& arg, Args&&... args) { msg.put(arg); pack_arg(msg, std::forward<Args>(args)...); }
void pack_arg(message& msg, Arg&& arg) { msg.put(arg); }