Template Class ring_buffer

Class Documentation

template<class T, std::size_t N>
class util::ring_buffer

A fixed-size ring buffer implementation.

Public Types

using value_type = T
using size_type = std::size_t
using difference_type = std::ptrdiff_t
using reference = value_type&
using const_reference = const value_type&
using pointer = value_type*
using const_pointer = const value_type*
using iterator = detail::ring_buffer_iterator<false, T, N>
using const_iterator = detail::ring_buffer_iterator<true, T, N>
using reverse_iterator = std::reverse_iterator<iterator>
using const_reverse_iterator = std::reverse_iterator<const_iterator>

Public Functions

ring_buffer() = default
~ring_buffer() = default
ring_buffer(ring_buffer&&) noexcept = default
ring_buffer(const ring_buffer&) noexcept = default
auto operator=(ring_buffer&&) noexcept -> ring_buffer& = default
auto operator=(const ring_buffer&) noexcept -> ring_buffer& = default
constexpr ring_buffer(std::initializer_list<T> ilist)
constexpr auto at(size_type pos) -> reference
constexpr auto at(size_type pos) const -> const_reference
constexpr auto operator[](size_type pos) -> reference
constexpr auto operator[](size_type pos) const -> const_reference
constexpr auto front() -> reference
constexpr auto front() const -> const_reference
constexpr auto back() -> reference
constexpr auto back() const -> const_reference
constexpr auto data() noexcept -> pointer
constexpr auto data() const noexcept -> const_pointer
constexpr auto empty() const noexcept -> bool
constexpr auto size() const noexcept -> size_type
constexpr auto max_size() const noexcept -> size_type
constexpr void push_front(const T &value)
constexpr void push_back(const T &value)