9

一時的な 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 が破棄され、参照カウンターがゼロになり、返された生のポインターが安全でなくなることです。

4

1 に答える 1

7

C++一時オブジェクトの寿命は何ですか?

この場合、返された は終了std::shared_ptrするまで破棄されないstd::cout << std::endl;ため、安全に逆参照できます。

于 2013-05-26T19:46:13.573 に答える