diff --git a/include/elem_circ.h b/include/elem_circ.h index 73bcd32..369e191 100644 --- a/include/elem_circ.h +++ b/include/elem_circ.h @@ -280,8 +280,8 @@ public: using base_t::cursor; - template - bool push(F&& f) noexcept { + template + bool push(F&& f, P&&...) noexcept { return base_t::push(this, std::forward(f), block_); } diff --git a/include/queue.h b/include/queue.h index 3baa542..9b05d5b 100644 --- a/include/queue.h +++ b/include/queue.h @@ -119,7 +119,7 @@ public: if (elems_ == nullptr) return false; if (elems_->push([&](void* p) { ::new (p) T(std::forward

(params)...); - })) { + }, std::forward

(params)...)) { waiter_.broadcast(); return true; }