アプリケーションはRapidXMLを使用してXMLファイルを編集します。編集は自動化されておらず、時々行われます。XMLコンテンツはGUIに表示され、ユーザーはXMLを変更するいくつかのアクションを実行します。各変更はすぐにディスクに保存する必要があります。
RapidXMLドキュメントオブジェクトをロードするには、ファイルの内容を文字列にコピーする必要があります。ドキュメントを変更するたびに、ドキュメントオブジェクトのコンテンツがファイルにコピーされます。
この例では、ファイルは入力と出力の両方に使用されます。この場合、すべての入出力操作に単一のオブジェクトを使用する必要がありますか?std::fstream
これは、アプリケーションの起動時に一度開かれ、入出力に使用され、アプリケーションの終了時に閉じられます。
std::ifstream
std::ofstream
または、ファイルの入出力を実行する必要があるときはいつでも、のローカル(一時的な)インスタンスを使用する必要がありますか?たとえばstd::ifstream
、ファイルを読み取るために最初に使用されます(開く、読み取る、閉じる)。同様に、std::ofstream
DOMをファイルにエクスポートする必要がある場合(開く、書き込む、閉じる)に使用されるインスタンス。
ここでは(アプリケーションの性質上)パフォーマンスについては心配していませんが、この場合のファイルストリームオブジェクトの適切な選択については興味があります。