我正在尝试将RAII概念与ofstream对象的STL容器一起使用。例如:

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的副本构造函数是私有(private)的。是否有使用RAII进行此操作的任何简单的plian C++ / STL解决方案,还是我需要涉及某种类型的智能指针?

最佳答案

为了防止文件被写入系统各个部分的多个位置,流不可复制。智能指针可能是解决问题的方法。

10-06 03:50