scoped_ptrやshared_ptrなどのsmart_ptrをstd :: mapなどのstdコンテナで使用することはできますか?boost :: smart_ptrを標準コンテナで使用できますか?
class SomeClass
{
std::map<int,boost::scoped_ptr<SomeOtherClass> > a_map;
};
boost::smart_ptr can be used for polymorphismこの場合も同様ですか?コンテナが破壊されると、サブクラスが正しく破棄されますか?
前と同じこと:試しましたか? – BatchyX
@BatchyX - nope。私の場合はかなりリファクタリングが多いので、私はむしろ尋ねます。また、答えがStackOverflowにない場合は、それは:)# – Jonathan
そこに行って、それを行ってください。しかし、私はそれから学んだことがあります。ほとんどの場合、5分以内にアイデアを検証/無効化する20〜30行のテストプログラムを書くことができます。 'struct test {〜test(){std :: cout <<" test "<< std :: endl; }}; int main(){vector> v; v.push_back(make_shared ()); } '(またはこの行の中では、コメントにコードを書くのが難しい)。次に、デストラクタが呼び出されたかどうかをコンパイルして検証します。 'scoped_ptr'で再度試して、コードがコンパイルされているかどうかを確認してください。いくつかの操作( 'resize'、...)を投げて確認してください。 –