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

View File

@@ -150,7 +150,22 @@ TEST_CASE("message is shared", "[message]")
size_t msg_sz = 1024; // large enough to be a type_lmsg
zmq::message_t msg1(msg_sz);
zmq::message_t msg2;
msg2.copy(&msg1);
msg2.copy(msg1);
CHECK(msg1.get(ZMQ_SHARED) == 1);
CHECK(msg2.get(ZMQ_SHARED) == 1);
CHECK(msg1.size() == msg_sz);
CHECK(msg2.size() == msg_sz);
}
TEST_CASE("message move is not shared", "[message]")
{
size_t msg_sz = 1024; // large enough to be a type_lmsg
zmq::message_t msg1(msg_sz);
zmq::message_t msg2;
msg2.move(msg1);
CHECK(msg1.get(ZMQ_SHARED) == 0);
CHECK(msg2.get(ZMQ_SHARED) == 0);
CHECK(msg2.size() == msg_sz);
CHECK(msg1.size() == 0);
}
#endif