自定义std::shared_ptr
是否安全?所以这是一个例子:
std::shared_ptr<std::vector<std::string>> pVec = std::make_shared<std::vector<std::string>>();
std::cout << pVec.use_count() << std::endl; // 1
pVec = pVec;
我知道分配一个shared_ptr
对象:
因此,在此示例中,LHS和RHS上的对象都是相同的,并且未指定赋值运算符中这两个RC更改的顺序。
我真的不知道在自我分配的情况下到底会发生什么。
允许进行自我分配,可以安全地谈论内存泄漏。实际上,没有任何文档和使用valgrind进行的测试表明共享指针的自我分配会导致内存泄漏。