mpcs_q removed default copy ctor and assignment

This commit is contained in:
gabi 2014-12-03 00:27:25 +02:00
parent b943265b94
commit 01344b6c8b
1 changed files with 7 additions and 3 deletions

View File

@ -71,7 +71,7 @@ class mpsc_q
public: public:
using item_type = T; using item_type = T;
mpsc_q(size_t max_size) : explicit mpsc_q(size_t max_size) :
_max_size(max_size), _max_size(max_size),
_size(0), _size(0),
_stub(), _stub(),
@ -80,6 +80,9 @@ public:
{ {
} }
mpsc_q(const mpsc_q&) = delete;
mpsc_q& operator=(const mpsc_q&) = delete;
~mpsc_q() ~mpsc_q()
{ {
clear(); clear();
@ -116,12 +119,10 @@ public:
// Empty the queue by popping all its elements // Empty the queue by popping all its elements
void clear() void clear()
{ {
while (mpscq_node_t* node = pop_node()) while (mpscq_node_t* node = pop_node())
{ {
--_size; --_size;
delete(node); delete(node);
} }
} }
@ -139,6 +140,9 @@ private:
T value; T value;
mpscq_node_t() :next(nullptr) {} mpscq_node_t() :next(nullptr) {}
mpscq_node_t(const mpscq_node_t&) = delete;
mpscq_node_t& operator=(const mpscq_node_t&) = delete;
explicit mpscq_node_t(const T& value): explicit mpscq_node_t(const T& value):
next(nullptr), next(nullptr),
value(value) {} value(value) {}