Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include <iostream>
- #include <deque>
- template <typename T = int,
- template <typename Type = T, typename AllocType = std::allocator<T>> class Container = std::deque>
- class fifo {
- public:
- using storage_type = Container<>;
- fifo() = default;
- void push(const T& pushable) { m_storage.push_back(pushable); }
- T& get() { return m_storage.front(); }
- const T& get() const { return m_storage.front(); }
- std::size_t size() const { return m_storage.size() - 1; }
- typename storage_type::const_iterator begin() const { return m_storage.begin(); }
- typename storage_type::const_iterator end() const { return m_storage.end(); }
- private:
- Container<> m_storage;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement