解除引用临时std :: shared_ptr是否安全?

时间:2013-05-26 19:39:19

标签: c++ visual-c++ memory-management stl

取消引用临时std :: shared_ptr?

是否安全

示例:

std::shared_ptr<std::string> create_shared_string()
{
  return std::shared_ptr<std::string>(new std::string("hello"));
}

std::cout << *create_shared_str() << std::endl;

我担心,一旦取消引用完成,shared_ptr就会被销毁,引用计数器会变为零,因此返回的原始指针不再安全。

1 个答案:

答案 0 :(得分:7)

what is the lifetime of C++ temporary object

在这种情况下,返回的std::shared_ptrstd::cout << std::endl;完成之前不会被破坏,因此您可以安全地取消引用它。