【问题标题】:Is it safe to dereference a temporary std::shared_ptr?取消引用临时 std::shared_ptr 是否安全?
【发布时间】:2013-05-21 17:02:59
【问题描述】:

取消引用临时 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 被破坏并且引用计数器变为零,因此返回的原始指针不再安全。

【问题讨论】:

  • 也许将其添加为答案? ;)

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


【解决方案1】:

what is the lifetime of C++ temporary object

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

【讨论】:

    猜你喜欢
    • 2020-03-09
    • 2021-11-07
    • 2013-01-07
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多