Я пытаюсь понять, почему
std::unique_ptr<MyClass> p = new MyClass;
Не работает, но
std::unique_ptr<MyClass> p;
p.reset(new MyClass);
Это хорошо. Я несколько понимаю, как они разные, но я хотел бы знать, почему был сделан выбор, чтобы сделать их разными. Какова опасность при назначении не такая же, как сброс?