ofstreamオブジェクトのSTLコンテナでRAIIの概念を使用しようとしています。例えば:
int main(int argc, char**argv)
{
std::deque<std::ofstream> sList;
sList.push_back(std::ofstream()); // tried variations such as *(new ofstream())
sList[0].open("test1.txt");
sList[0] << "This is a test";
sList[0].close();
}
ただし、コードと宣言をどのように調整しようとしても、コンパイラーは常に文句を言います。どうやら、ストリーム内にあるstd::basic_iosのコピーコンストラクターはプライベートです。RAIIを使用してこれを行うための簡単なplianC++ / STLソリューションはありますか、または何らかのタイプのスマートポインターを関与させる必要がありますか?