相关疑难解决方法(0)

为什么我不能将nullptr转换为weak_ptr <>

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)

这是为什么?

c++ null casting shared-ptr weak-ptr

16
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×1

casting ×1

null ×1

shared-ptr ×1

weak-ptr ×1