porque eu não posso converter nullptr para weak_ptr <>

class MyClass {
public:
     MyClass(std::weak_ptr<MyClass> parent){}
}

Eu quero fazer isso:

auto newInstance = std::make_shared<MyClass>(nullptr);

ou o valor padrão do argumento weak_ptr é nulo, como:

void function(int arg,std::weak_ptr<MyClass> obj = nullptr);

mas, o que eu preciso é fazer isso em vez disso:

auto newInstance = std::make_shared<MyClass>(std::shared_ptr<MyClass>(nullptr));

por que é que?

questionAnswers(2)

yourAnswerToTheQuestion