は以下と等価何ですか:boost :: shared_ptrを持つNULLポインタ?
std::vector<Foo*> vec;
vec.push_back(NULL);
boost::shared_ptr
を扱いますか?それは次のコードですか?
std::vector< boost::shared_ptr<Foo> > vec;
vec.push_back(boost::shared_ptr<Foo>());
注:このようなオブジェクトを多くプッシュバックすることがあります。私はグローバルな静的nullPtr
オブジェクトをどこかに宣言すべきですか?そうすれば、それらのうちの1つだけを構築する必要があります:
boost::shared_ptr<Foo> nullPtr;
良いニュース:そこに、あなたが書くことができます "vec.emplace_backを();" NULLポインタを追加してください:) –
オーバーヘッドが少なくて済む 'boost :: ptr_vector'の使用を検討してください。 – Philipp