11#include <boost/assert.hpp>
31 requires std::convertible_to<U, T>;
35 [[nodiscard]]
unsigned size()
const {
return size_; }
39 [[nodiscard]]
bool empty()
const {
return size() == 0; }
43 void forEach(std::function<
void(T &)> function);
57 requires std::convertible_to<U, T>
64 queue_.push_back(std::forward<U>(elem));
73 if (
empty()) [[unlikely]] {
85 for (
unsigned i = 0; i <
size_; ++i) {
BoundedQueue(size_t capacity)
Definition bounded_queue.h:26
T get()
Pop an item from the queue.
Definition bounded_queue.h:72
void put(U &&elem)
Push an item to the queue.
Definition bounded_queue.h:56
unsigned size_
Definition bounded_queue.h:51
bool empty() const
size() == 0
Definition bounded_queue.h:39
void forEach(std::function< void(T &)> function)
Definition bounded_queue.h:83
bool hasSpace() const
size() < capacity()
Definition bounded_queue.h:41
unsigned head_
Definition bounded_queue.h:48
std::vector< T > queue_
Definition bounded_queue.h:46
unsigned capacity() const
Maximum number of contained items.
Definition bounded_queue.h:37
unsigned tail_
Definition bounded_queue.h:50
unsigned size() const
Current number of contained items.
Definition bounded_queue.h:35
Definition async_work.cc:18
Definition exception.h:19