Problem: message_t move and copy are mutating but take const

Solution: Deprecate old functions and add overloads taking non-const
references
This commit is contained in:
Gudmundur Adalsteinsson
2019-04-03 13:56:11 +00:00
parent e1fe5e5209
commit 72f0e1bcba
2 changed files with 32 additions and 1 deletions

16
zmq.hpp
View File

@@ -335,6 +335,7 @@ class message_t
throw error_t();
}
ZMQ_DEPRECATED("from 4.3.1, use move taking non-const reference instead")
void move(message_t const *msg_)
{
int rc = zmq_msg_move(&msg, const_cast<zmq_msg_t *>(&(msg_->msg)));
@@ -342,6 +343,14 @@ class message_t
throw error_t();
}
void move(message_t &msg_)
{
int rc = zmq_msg_move(&msg, &msg_.msg);
if (rc != 0)
throw error_t();
}
ZMQ_DEPRECATED("from 4.3.1, use copy taking non-const reference instead")
void copy(message_t const *msg_)
{
int rc = zmq_msg_copy(&msg, const_cast<zmq_msg_t *>(&(msg_->msg)));
@@ -349,6 +358,13 @@ class message_t
throw error_t();
}
void copy(message_t &msg_)
{
int rc = zmq_msg_copy(&msg, &msg_.msg);
if (rc != 0)
throw error_t();
}
bool more() const ZMQ_NOTHROW
{
int rc = zmq_msg_more(const_cast<zmq_msg_t *>(&msg));