Вступить в клуб →
средняявопросООП, исключения и дизайн классов

Добавили пустой деструктор для логирования, и вектор кадров стал копироваться

struct Frame {
    std::vector<uint8_t> pixels;   // ~8 МБ
    ~Frame() { stats::framesDestroyed++; }
};

std::vector<Frame> queue;
queue.push_back(std::move(frame));

После добавления деструктора профайлер показывает копирование 8 МБ на каждом push_back, хотя стоит std::move. Почему?

  • Свой деструктор отменяет неявный move-конструктор
  • std::move не работает для классов с деструктором
  • Деструктор делает класс полиморфным
  • push_back копирует, если у класса есть деструктор

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела