/** * @file queue.hpp * @brief J Library Queue ヘッダファイル。 * @copyright 2001 - 2024 Nomura Kei * @depends * j/lang/collection.hpp */ #ifndef J_UTIL_QUEUE_HPP #define J_UTIL_QUEUE_HPP #include <j/util/collection.hpp> namespace j { namespace util { template <typename T> class Queue : public Collection<T> { public: virtual ~Queue() = default; virtual T &element() const = 0; virtual bool offer(const T &t) = 0; virtual T &peek() const = 0; virtual T poll() = 0; virtual T remove() = 0; }; } // namespace util } // namespace j #endif // J_UTIL_QUEUE_HPP