# Задача 03 — кольцевой буфер (C++) Кольцевой буфер фиксированной ёмкости — базовая структура для embedded и сетевого кода. ```c++ class RingBuffer { public: explicit RingBuffer(size_t capacity); ~RingBuffer(); bool push(int v); // false, если буфер полон (перезапись НЕ делать) bool pop(int& out); // false, если буфер пуст size_t size() const; size_t capacity() const; bool empty() const; bool full() const; }; ``` Требования: - O(1) на push/pop, никаких сдвигов элементов; - память выделяется один раз в конструкторе, освобождается в деструкторе; - поведение после заворачивания индексов (wrap-around) корректное; - копирование запрещать не обязательно, но двойного освобождения быть не должно. Проверка: `python3 grade.py 03`. Критерий: все `ok`, ASAN/UBSAN чистые.