class MyClass {
public:
MyClass(std::weak_ptr<MyClass> parent){}
}
Run Code Online (Sandbox Code Playgroud)
我想做这个:
auto newInstance = std::make_shared<MyClass>(nullptr);
Run Code Online (Sandbox Code Playgroud)
或者weak_ptr参数的默认值为null,例如:
void function(int arg,std::weak_ptr<MyClass> obj = nullptr);
Run Code Online (Sandbox Code Playgroud)
但是,我需要的是这样做:
auto newInstance = std::make_shared<MyClass>(std::shared_ptr<MyClass>(nullptr));
Run Code Online (Sandbox Code Playgroud)
这是为什么?