Вступить в клуб →
сложнаявопросСовременный C++: move-семантика, шаблоны, лямбды

Список из unique_ptr в фигурных скобках не компилируется

std::vector<std::unique_ptr<Handler>> handlers{
    std::make_unique<AuthHandler>(),
    std::make_unique<LogHandler>(),
};

Компилятор пишет use of deleted function unique_ptr(const unique_ptr&). Все аргументы — временные объекты. Почему вектор пытается копировать?

  • Элементы initializer_list константны и копируются
  • make_unique возвращает lvalue, а не временный
  • Вектор unique_ptr нельзя создавать в C++17
  • Нужно указать тип unique_ptr<Handler> явно

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

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

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

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