「Handling map of files in c++」は「いいえ、std::map<std::string, std::ofstream*>
を使用する必要がありますが、これはnew
とdelete
のアクションにつながりますが、それほどきれいではありません。std :: mapを使ってstd :: ofstreamを扱うことは可能ですか?
"Is std::ofstream movable?はい!" 「std::map<>::insert using non-copyable objects and uniform initialization」はofstream
のコレクションを扱うことが可能ですかstd::map
を使用していますか?ファイルストリームを閉じることについて心配することはなく、メモリを解放するにはdelete
を使用します。
std::map<std::string, std::ofstream>
を使用している間は作成、使用(書き込む)、閉じてコピーするだけで妥協することができます。
"1はファイルストリームを閉じて心配してメモリを解放するために削除されませんように"。これは、スマートポインタが使用するものです(移動セマンティクスがうまくいかない場合、または多態性ストリームが必要な場合)。 –
でも、それ自体のofstream自体もそうですよね?スコープから外れている場合、デストラクタが呼び出され、すべての要素のデストラクタ、つまりofstreamのものが呼び出され、すべてのファイルが適切に閉じられます。 – athos