libs
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:140.1.0+855c407f828e11 / 21 个公开 API 符号没有说明。
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:14上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:17
libs::RingBuffer< T, Capacity, Overwrite >::RingBuffer ()=default
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:22
const T * libs::RingBuffer< T, Capacity, Overwrite >::back () const noexcept
查看队尾元素(最新入队的元素,不弹出)。 队尾元素指针,队列为空时返回 nullptr。
libs/utils/ring_buffer/RingBuffer.hpp:140
static constexpr std::size_t libs::RingBuffer< T, Capacity, Overwrite >::capacity () noexcept
返回实际可存储的元素个数。 由于需要留出一个空槽位,所以有效容量比模板参数少 1。
libs/utils/ring_buffer/RingBuffer.hpp:176
void libs::RingBuffer< T, Capacity, Overwrite >::clear () noexcept
清空缓冲区中的所有元素。 这个操作只会复位读写指针,不会改写底层存储。
libs/utils/ring_buffer/RingBuffer.hpp:152
T * libs::RingBuffer< T, Capacity, Overwrite >::emplace () noexcept
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:75
bool libs::RingBuffer< T, Capacity, Overwrite >::empty () const noexcept
查询队列状态。
libs/utils/ring_buffer/RingBuffer.hpp:161
const T * libs::RingBuffer< T, Capacity, Overwrite >::front () const noexcept
查看队头元素(不弹出)。 队头元素指针,队列为空时返回 nullptr。
libs/utils/ring_buffer/RingBuffer.hpp:128
bool libs::RingBuffer< T, Capacity, Overwrite >::full () const noexcept
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:162
static constexpr std::size_t libs::RingBuffer< T, Capacity, Overwrite >::next (const std::size_t idx) noexcept
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:185
T * libs::RingBuffer< T, Capacity, Overwrite >::pop () noexcept
返回队头元素指针并前移读指针。 调用方拿到的是缓冲区内部元素的直接地址,因此应该尽快消费,不要长期持有。
libs/utils/ring_buffer/RingBuffer.hpp:114
bool libs::RingBuffer< T, Capacity, Overwrite >::pop (T &out) noexcept
弹出一个元素到 out。 空队列时返回 false。这个接口适合调用方需要保留一份拷贝的情况。
libs/utils/ring_buffer/RingBuffer.hpp:98
static constexpr std::size_t libs::RingBuffer< T, Capacity, Overwrite >::prev (const std::size_t idx) noexcept
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:190
bool libs::RingBuffer< T, Capacity, Overwrite >::push (Builder &&builder) noexcept
使用 builder 原地构造元素,避免额外拷贝。 builder 会直接拿到队头位置的引用,适合构造较大的对象或者需要分步骤填充对象的场景。
libs/utils/ring_buffer/RingBuffer.hpp:60
bool libs::RingBuffer< T, Capacity, Overwrite >::push (const T &value) noexcept
直接把一个元素拷贝入队。 true 表示入队成功;如果缓冲区已满且不允许覆盖,则返回 false。
libs/utils/ring_buffer/RingBuffer.hpp:29
std::size_t libs::RingBuffer< T, Capacity, Overwrite >::size () const noexcept
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:164
T libs::RingBuffer< T, Capacity, Overwrite >::buffer_[Capacity] [Capacity]
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:179
volatile std::size_t libs::RingBuffer< T, Capacity, Overwrite >::head_
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:181
volatile std::size_t libs::RingBuffer< T, Capacity, Overwrite >::tail_
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:182固定容量环形缓冲区。 syhanjin 2026-02-24 这个容器适合生产者和消费者之间做小规模缓存,尤其是在中断和任务之间传递短消息时。 容量设计上会保留一个空槽位来区分“满”和“空”;如果 Overwrite=true,缓冲区满时会自动丢弃最旧元素。
libs/utils/ring_buffer/RingBuffer.hpp