が呼び出されると、Foo を構築し、呼び出し元 (つまり、こちら)に対してstd::make_shared(new Foo())
を返します。これがさまざまなオブジェクトから複数回呼び出される場合、毎回構築しますか? この場合、各呼び出し元が新しいオブジェクトへの単一の参照を取得し、実際には unque_ptr のように動作するのと同じでしょうか?std::shared_ptr<Foo>
new Foo()
それともFoo()
、最初に s を作成してから、ある種のシングルトンのように動作することを知って、それに s を返しますかstd::shared_ptr
(もちろん、最後std::shared_ptr
が破棄されると削除します)? これはプラットフォーム固有のものですか?
具体的には次のような機能です。
std::shared_ptr<Foo> makeFoo()
{
return std::make_shared<Foo>();
}