38 template <FloatType T,
size_t N>
53 m_buffer[m_writeIndex++] = toPush;
54 while (m_writeIndex >=
static_cast<int>(N)) {
55 m_writeIndex -=
static_cast<int>(N);
65 [[nodiscard]] T
peek(
size_t offset)
const {
66 auto actualIndex = (m_writeIndex -
static_cast<int>(offset));
67 while (actualIndex < 0) {
68 actualIndex +=
static_cast<int>(N);
70 const auto res = m_buffer[
static_cast<size_t>(actualIndex)];
78 std::fill(m_buffer.begin(), m_buffer.end(),
static_cast<T
>(0.0));
83 std::array<T, N> m_buffer;
84 int m_writeIndex{ 0 };
FixedCircularBuffer()
Definition marvin_FixedCircularBuffer.h:44
T peek(size_t offset) const
Definition marvin_FixedCircularBuffer.h:65
void push(T toPush)
Definition marvin_FixedCircularBuffer.h:52
void reset()
Definition marvin_FixedCircularBuffer.h:77
Views, wrappers and custom containers.
Definition marvin_BufferView.h:15