47template<
class T, std::
size_t CAPACITY>
50 static_assert(CAPACITY > 0,
"CAPACITY must be > 0");
64 bool push(
const T &value);
76 std::optional<T>
pop();
91 [[nodiscard]] std::optional<T>
front()
const;
100 [[nodiscard]]
bool front(T &value)
const;
107 [[nodiscard]] std::optional<T>
back()
const;
116 [[nodiscard]]
bool back(T &value)
const;
127 [[nodiscard]]
bool empty()
const;
134 [[nodiscard]]
bool full()
const;
141 [[nodiscard]] std::size_t
size()
const;
148 [[nodiscard]]
constexpr std::size_t
capacity()
const;
177template<
class T, std::
size_t CAPACITY>
182 return m_buffer.
push(value);
187template<
class T, std::
size_t CAPACITY>
190 return m_buffer.pop();
195template<
class T, std::
size_t CAPACITY>
198 return m_buffer.pop(value);
203template<
class T, std::
size_t CAPACITY>
206 return m_buffer.front();
211template<
class T, std::
size_t CAPACITY>
214 return m_buffer.front(value);
219template<
class T, std::
size_t CAPACITY>
222 return m_buffer.back();
227template<
class T, std::
size_t CAPACITY>
230 return m_buffer.back(value);
234template<
class T, std::
size_t CAPACITY>
237 return m_buffer.empty();
241template<
class T, std::
size_t CAPACITY>
244 return m_buffer.full();
248template<
class T, std::
size_t CAPACITY>
251 return m_buffer.size();
255template<
class T, std::
size_t CAPACITY>
262template<
class T, std::
size_t CAPACITY>