diff --git a/BAN/include/BAN/CircularQueue.h b/BAN/include/BAN/CircularQueue.h index 4638b8a5..57a84b43 100644 --- a/BAN/include/BAN/CircularQueue.h +++ b/BAN/include/BAN/CircularQueue.h @@ -31,6 +31,9 @@ namespace BAN const T& front() const; T& front(); + const T& back() const; + T& back(); + size_type size() const { return m_size; } bool empty() const { return size() == 0; } bool full() const { return size() == capacity(); } @@ -98,6 +101,20 @@ namespace BAN return *element_at(m_first); } + template + const T& CircularQueue::back() const + { + ASSERT(!empty()); + return *element_at((m_first + m_size - 1) % capacity()); + } + + template + T& CircularQueue::back() + { + ASSERT(!empty()); + return *element_at((m_first + m_size - 1) % capacity()); + } + template const T* CircularQueue::element_at(size_type index) const {