Рассмотрение следующего кода. Почему я не могу использовать обозначение назначения здесь, почему это считается неявным преобразованием.Обозначение присвоения shared_ptr неявное преобразование
shared_ptr<string> pNico = new string("nico"); // ERROR implicit conversion
shared_ptr<string> pNico{new string("nico")}; // OK
Возможно, что построение из необработанного указателя сделано явно для 'shared_ptr', так что' foo (&obj); 'не будет случайно владеть' obj' –
Оператор присваивания не перегружен для 'T *', только для других интеллектуальных указатели – xvan
@xvan это не уступка, но строительство –