diff --git a/src/zmq.cpp b/src/zmq.cpp index ca803554..d73fc7b8 100644 --- a/src/zmq.cpp +++ b/src/zmq.cpp @@ -558,7 +558,8 @@ int zmq_recviov (void *s_, iovec *a_, size_t *count_, int flags_) memcpy(a_[i].iov_base,static_cast (zmq_msg_data (&msg)), a_[i].iov_len); // Assume zmq_socket ZMQ_RVCMORE is properly set. - recvmore = ((zmq::msg_t*) (void *) &msg)->flags () & zmq::msg_t::more; + zmq::msg_t* p_msg = reinterpret_cast(&msg); + recvmore = p_msg->flags() & zmq::msg_t::more; rc = zmq_msg_close(&msg); errno_assert (rc == 0); ++*count_;