shared_ptrのメンバ変数の初期化:shared_ptrメンバ変数を初期化する、新しいvs make_shared?
// .h
class Customer
{
public:
Customer();
private:
std::shared_ptr<OtherClass> something_;
}
// .cpp
Customer():
something_(new OtherClass())
{
}
対は
Customer():
something_(std::make_shared<OtherClass>())
{
}
make_sharedバージョンが許可されていますか?私はいつも最初のバージョンを見ているようですが、それが好まれますか? make_shared
が許可されないある
ハーブ・サッターはこれにGOTWを書きました。 [this](http://herbsutter.com/gotw/_103/)を参照し、[1つの問題](http://lanzkron.wordpress.com/2012/04/22/make_shared-almost-a-silver)もチェックしてください-bullet /)はハーブが明示的に述べていない。 –
@RSamuelKlatchko - ansewerで使用した最初のリンクの更新リンクhttps://herbsutter.com/2013/05/29/gotw-89-solution-smart-pointers/ –