Problem: socket_t can not be default constructed

Solution: Provide a default constructor
This commit is contained in:
Gudmundur Adalsteinsson 2019-04-14 12:21:30 +00:00
parent 5c95a07d72
commit 4ceabb37b6
2 changed files with 20 additions and 0 deletions

View File

@ -9,6 +9,11 @@ static_assert(std::is_nothrow_swappable<zmq::socket_t>::value,
"socket_t should be nothrow swappable");
#endif
TEST_CASE("socket default ctor", "[socket]")
{
zmq::socket_t socket;
}
TEST_CASE("socket create destroy", "[socket]")
{
zmq::context_t context;
@ -16,6 +21,15 @@ TEST_CASE("socket create destroy", "[socket]")
}
#ifdef ZMQ_CPP11
TEST_CASE("socket create assign", "[socket]")
{
zmq::context_t context;
zmq::socket_t socket(context, ZMQ_ROUTER);
CHECK(static_cast<void*>(socket));
socket = {};
CHECK(!static_cast<void*>(socket));
}
TEST_CASE("socket create by enum and destroy", "[socket]")
{
zmq::context_t context;

View File

@ -641,6 +641,12 @@ class socket_t
friend class monitor_t;
public:
socket_t() ZMQ_NOTHROW
: ptr(ZMQ_NULLPTR)
, ctxptr(ZMQ_NULLPTR)
{
}
socket_t(context_t &context_, int type_)
: ptr(zmq_socket(static_cast<void*>(context_), type_))
, ctxptr(static_cast<void*>(context_))