From 16f16eeaad53daefee243d96b7ecdff60ac92eac Mon Sep 17 00:00:00 2001 From: Gudmundur Adalsteinsson Date: Thu, 4 Apr 2019 17:55:27 +0000 Subject: [PATCH] Problem: message_t lacks empty() function Solution: Add function and qualify with nodiscard like std types --- tests/message.cpp | 3 +++ zmq.hpp | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/tests/message.cpp b/tests/message.cpp index 005d6c8..15f0484 100644 --- a/tests/message.cpp +++ b/tests/message.cpp @@ -17,6 +17,7 @@ TEST_CASE("message default constructed", "[message]") { const zmq::message_t message; CHECK(0u == message.size()); + CHECK(message.empty()); } #ifdef ZMQ_CPP11 @@ -89,8 +90,10 @@ TEST_CASE("message assign move empty before", "[message]") TEST_CASE("message assign move empty after", "[message]") { zmq::message_t hi_msg(data, strlen(data)); + CHECK(!hi_msg.empty()); hi_msg = zmq::message_t(); CHECK(0u == hi_msg.size()); + CHECK(hi_msg.empty()); } TEST_CASE("message assign move empty before and after", "[message]") diff --git a/zmq.hpp b/zmq.hpp index ad9e9db..f98549d 100644 --- a/zmq.hpp +++ b/zmq.hpp @@ -396,6 +396,11 @@ class message_t return zmq_msg_size(const_cast(&msg)); } + ZMQ_NODISCARD bool empty() const ZMQ_NOTHROW + { + return size() == 0u; + } + template T *data() ZMQ_NOTHROW { return static_cast(data()); } template T const *data() const ZMQ_NOTHROW