/**
* @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