Присваивание одного unique_ptr другому
std::unique_ptr<Session> a = std::make_unique<Session>();
std::unique_ptr<Session> b = a;
Что будет с этим кодом?
- Скомпилируется: оба указателя будут владеть объектом, счётчик владельцев станет равен 2
- Скомпилируется, но `a` станет пустым, а объект перейдёт к `b`
- Не скомпилируется: копирование `unique_ptr` запрещено, владение передают через `std::move(a)`
- Скомпилируется, но при выходе из области видимости объект будет удалён дважды
