11 using size_type =
typename std::vector< T >::size_type;
20 : t_{t}, idx_{idx}, size_{size}, increments_{increments}
64 return ( idx_ == other.idx_ && size_ == other.size_ ) ||
65 ( increments_ >= size_ && other.increments_ >= other.size_ );
70 return !( ( *this ) == other );
84 using size_type =
typename std::vector< T >::size_type;
92 return buffer_[ ( offset_ + i ) % buffer_.size() ];
97 return buffer_[ ( offset_ + i ) % buffer_.size() ];
102 if ( buffer_.empty() )
107 offset_ %= buffer_.size();
112 std::fill( begin(), begin() + N, 0 );
133 std::vector< T > buffer_;
bool operator!=(const ring_buffer_iterator_t &other) const noexcept
Definition: ring_buffer.hpp:68
ring_buffer_iterator_t operator++(int) noexcept
Definition: ring_buffer.hpp:28
typename std::vector< T >::size_type size_type
Definition: ring_buffer.hpp:11
ring_buffer_t(size_type size)
Definition: ring_buffer.hpp:86
void move(size_type offset) noexcept
Definition: ring_buffer.hpp:100
T value_type
Definition: ring_buffer.hpp:13
reference operator*() const noexcept
Definition: ring_buffer.hpp:57
T * pointer
Definition: ring_buffer.hpp:15
const T & operator[](size_type i) const noexcept
Definition: ring_buffer.hpp:95
T & reference
Definition: ring_buffer.hpp:14
T & operator[](size_type i) noexcept
Definition: ring_buffer.hpp:90
ring_buffer_iterator_t & operator+=(size_type n) noexcept
Definition: ring_buffer.hpp:40
void clean_and_move(size_type N) noexcept
Definition: ring_buffer.hpp:115
void clean(size_type N) noexcept
Definition: ring_buffer.hpp:110
std::size_t difference_type
Definition: ring_buffer.hpp:12
Definition: ring_buffer.hpp:8
Definition: ring_buffer.hpp:81
ring_buffer_iterator_t operator+(size_type n) noexcept
Definition: ring_buffer.hpp:35
ring_buffer_iterator_t(T *t, size_type size, size_type idx=0, size_type increments=0) noexcept
Definition: ring_buffer.hpp:18
bool operator==(const ring_buffer_iterator_t &other) const noexcept
Definition: ring_buffer.hpp:62
auto begin() noexcept
Definition: ring_buffer.hpp:121
auto end() noexcept
Definition: ring_buffer.hpp:126
std::forward_iterator_tag iterator_category
Definition: ring_buffer.hpp:16
ring_buffer_iterator_t & operator++() noexcept
Definition: ring_buffer.hpp:24