/** * \file libconcur/queue.h * \author mutouyun (orz@orzz.org) * \brief Define concurrent circular queue. * \date 2022-11-19 */ #pragma once #include "libconcur/def.h" #include "libconcur/data_model.h" LIBCONCUR_NAMESPACE_BEG_ template class circular_queue : public data_model { using base_t = data_model; public: using base_t::base_t; template bool push(U &&value) noexcept { return this->enqueue(std::forward(value)); } bool pop(typename base_t::value_type &value) noexcept { return this->dequeue(value); } }; LIBCONCUR_NAMESPACE_END_