Список из 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> явно
