Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.72 KB | None | 0 0
  1. #pragma once
  2.  
  3. #include <iostream>
  4. #include <deque>
  5.  
  6. template <typename T = int,
  7.     template <typename Type = T, typename AllocType = std::allocator<T>> class Container = std::deque>
  8. class fifo {
  9. public:
  10.     using storage_type = Container<>;
  11.  
  12.     fifo() = default;
  13.  
  14.     void push(const T& pushable) { m_storage.push_back(pushable); }
  15.    
  16.     T& get() { return m_storage.front(); }
  17.     const T& get() const { return m_storage.front(); }
  18.    
  19.     std::size_t size() const { return m_storage.size() - 1; }
  20.  
  21.     typename storage_type::const_iterator begin() const { return m_storage.begin(); }
  22.     typename storage_type::const_iterator end() const { return m_storage.end(); }
  23.  
  24. private:
  25.     Container<> m_storage;
  26. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement